c# free pdf viewer component : Adding pages to a pdf control SDK system web page wpf azure console REC-png0-part861

PNG(PortableNetworkGraphics)Specification
Version1.0
Forlistofauthors,seeCredits(Chapter19).
Statusofthisdocument
ThisdocumenthasbeenreviewedbyW3Cmembersandotherinterestedpartiesandhasbeenendorsedby
theDirectorasaW3CRecommendation. Itisastabledocumentandmaybeusedasreferencematerialor
citedasanormativereferencefromanotherdocument.W3C’sroleinmakingtheRecommendationistodraw
attentiontothespecificationandtopromoteitswidespreaddeployment.Thisenhancesthefunctionalityand
interoperabilityoftheWeb.
AlistofcurrentW3CRecommendationsandothertechnicaldocumentscanbefoundathttp://www.w3.org/
pub/WWW/TR/.
TheConsortiumstaffhaveencouragedthedevelopmentofPNG,ashaveCompuserve,Inc.Mostofthework
hasbeendonebythePNGDevelopmentGroup,png-group@w3.org.TheConsortiumdoesnotcurrently
haveplanstoworkonanyfutureversionsofPNG,thoughwerethenecessitytoarise,andwereanactivityin
thatareatoreceivethesupportofMembers,theConsortiumcouldinprinciplesupportsomefutureactivity.
Abstract
This documentdescribes s PNG G (Portable NetworkGraphics), , an n extensible fileformatforthe lossless,
portable,well-compressedstorageofrasterimages. PNGprovidesapatent-freereplacementforGIFand
canalsoreplacemanycommonusesofTIFF.Indexed-color,grayscale,andtruecolorimagesaresupported,
plusanoptionalalphachannel.Sampledepthsrangefrom1to16bits.
PNGisdesignedtoworkwellinonlineviewingapplications,suchastheWorldWideWeb,soitisfully
streamablewithaprogressivedisplayoption.PNGisrobust,providingbothfullfileintegritycheckingand
simpledetectionofcommontransmissionerrors. Also,PNGcanstoregammaandchromaticitydatafor
improvedcolormatchingonheterogeneousplatforms.
ThisspecificationdefinesaproposedInternetMediaTypeimage/png.
Adding pages to a pdf - insert pages into PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
adding page numbers pdf; add page numbers to pdf online
Adding pages to a pdf - VB.NET PDF Page Insert Library: insert pages into PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
adding page numbers to pdf in; adding pages to a pdf document in preview
2
PNG(PORTABLENETWORKGRAPHICS)SPECIFICATION
Contents
1 Introduction
5
2 DataRepresentation
6
2.1
Integersandbyteorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2
Colorvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3
Imagelayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4
Alphachannel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5
Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6
Interlaceddataorder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7
Gammacorrection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.8
Textstrings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 FileStructure
10
3.1
PNGfilesignature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2
Chunklayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3
Chunknamingconventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4
CRCalgorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4 ChunkSpecifications
14
4.1
Criticalchunks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.1 IHDR R Imageheader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.2 PLTE E Palette e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.1.3 IDAT T Imagedata a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.4 IEND D Imagetrailer r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2
Ancillarychunks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.1 bKGD D Backgroundcolor r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.2 cHRM M Primarychromaticitiesandwhitepoint t . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.3 gAMA A Imagegamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.4 hIST T Imagehistogram m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.5 pHYs s Physicalpixeldimensions s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.6 sBIT T Significantbits s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.7 tEXt t Textualdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.8 tIME E Imagelast-modificationtime e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.9 tRNS S Transparency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.10 zTXt t Compressedtextualdata a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3
Summaryofstandardchunks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4
Additionalchunktypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 Deflate/InflateCompression
25
VB.NET PDF Library SDK to view, edit, convert, process PDF file
PDF document (pages) creation and edit methods in VB.NET. Feel free to define text or images on PDF document and extract accordingly. Capable of adding PDF file
add page break to pdf; adding pages to a pdf
C# PDF insert image Library: insert images into PDF in C#.net, ASP
application? To help you solve this technical problem, we provide this C#.NET PDF image adding control, XDoc.PDF for .NET. Similar
add a page to a pdf; add page number to pdf file
PNG(PORTABLENETWORKGRAPHICS)SPECIFICATION
3
6 FilterAlgorithms
26
6.1
Filtertypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2
Filtertype0:None. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.3
Filtertype1:Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.4
Filtertype2:Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.5
Filtertype3:Average . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.6
Filtertype4:Paeth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7 ChunkOrderingRules
30
7.1
BehaviorofPNGeditors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.2
Orderingofancillarychunks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.3
Orderingofcriticalchunks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8 MiscellaneousTopics
32
8.1
Filenameextension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2
Internetmediatype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.3
Macintoshfilelayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.4
Multiple-imageextension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.5
Securityconsiderations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9 RecommendationsforEncoders
33
9.1
Sampledepthscaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
9.2
Encodergammahandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.3
Encodercolorhandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.4
Alphachannelcreation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.5
Suggestedpalettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.6
Filterselection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.7
Textchunkprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9.8
Useofprivatechunks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.9
Privatetypeandmethodcodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10 RecommendationsforDecoders
41
10.1 Errorchecking g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.2 Pixeldimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.3 Truecolorimagehandling g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.4 Sampledepthrescaling g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.5 Decodergammahandling g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.6 Decodercolorhandling g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
10.7 Backgroundcolor r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.8 Alphachannelprocessing g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.9 Progressivedisplay y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.10 Suggested-paletteandhistogramusage e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.11 Textchunkprocessing g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Provides you with examples for adding an (empty) page to a PDF and adding empty pages to a PDF from a supported file format, with customized options.
add pages to pdf file; adding page numbers to pdf
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
add page numbers to a pdf; add page numbers to a pdf document
4
PNG(PORTABLENETWORKGRAPHICS)SPECIFICATION
11 Glossary
52
12 Appendix:Rationale
56
12.1 Whyanewfileformat? ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.2 Whythesefeatures? ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.3 Whynotthesefeatures? ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
12.4 WhynotuseformatX? ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
12.5 Byteorder r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
12.6 Interlacing g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.7 Whygamma? ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.8 Non-premultipliedalpha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.9 Filtering g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.10 Textstrings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
12.11 PNGfilesignature e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
12.12 Chunklayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.13 Chunknamingconventions s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.14 Palettehistograms s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
13 Appendix:GammaTutorial
64
14 Appendix:ColorTutorial
70
15 Appendix:SampleCRCCode
74
16 Appendix:OnlineResources
76
17 Appendix:RevisionHistory
76
18 References
77
19 Credits
79
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
Provides you with examples for adding an (empty) page to a PDF and adding empty pages to a PDF from a supported file format, with customized options in VB.NET.
add page to pdf in preview; add page numbers pdf file
VB.NET PDF insert text library: insert text into PDF content in vb
VB.NET PDF - Insert Text to PDF Document in VB.NET. Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program.
add blank page to pdf preview; add page number pdf
1. INTRODUCTION
5
1 Introduction
ThePNGformatprovidesaportable,legallyunencumbered,well-compressed,well-specifiedstandardfor
losslessbitmappedimagefiles.
AlthoughtheinitialmotivationfordevelopingPNGwastoreplaceGIF,thedesignprovidessomeusefulnew
featuresnotavailableinGIF,withminimalcosttodevelopers.
GIFfeaturesretainedinPNGinclude:
Indexed-colorimagesofupto256colors.
Streamability:filescanbereadandwrittenserially,thusallowingthefileformattobeusedasacom-
municationsprotocolforon-the-flygenerationanddisplayofimages.
Progressivedisplay:asuitablypreparedimagefilecanbedisplayedasitisreceivedoveracommuni-
cationslink,yieldingalow-resolutionimageveryquicklyfollowedbygradualimprovementofdetail.
Transparency: portions s oftheimagecan bemarkedastransparent, , creating g theeffectofanon-
rectangularimage.
Ancillaryinformation:textualcommentsandotherdatacanbestoredwithintheimagefile.
Completehardwareandplatformindependence.
Effective,100%losslesscompression.
ImportantnewfeaturesofPNG,notavailableinGIF,include:
Truecolorimagesofupto48bitsperpixel.
Grayscaleimagesofupto16bitsperpixel.
Fullalphachannel(generaltransparencymasks).
Image gamma information, , which h supports automatic display ofimages with correctbrightness/
contrastregardlessofthemachinesusedtooriginateanddisplaytheimage.
Reliable,straightforwarddetectionoffilecorruption.
Fasterinitialpresentationinprogressivedisplaymode.
PNGisdesignedtobe:
Simpleandportable:developersshouldbeabletoimplementPNGeasily.
Legallyunencumbered:tothebestknowledgeofthePNGauthors,noalgorithmsunderlegalchallenge
areused.(Someconsiderableefforthasbeenspenttoverifythis.)
Wellcompressed: bothindexed-colorandtruecolorimagesarecompressedaseffectivelyasinany
otherwidelyusedlosslessformat,andinmostcasesmoreeffectively.
Interchangeable:anystandard-conformingPNGdecodermustreadallconformingPNGfiles.
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
TIFF Pages Modifier. Opposite to page adding & inserting &ltsummary> ''' Sort TIFF document pages in designed & profession imaging controls, PDF document, image
adding a page to a pdf; adding a page to a pdf in preview
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Rapidly load, create, convert and edit PDF document (pages) in C# class with .NET PDF library. Support protecting PDF file by adding password and digital
add pdf pages together; adding a page to a pdf document
6
PNG(PORTABLENETWORKGRAPHICS)SPECIFICATION
Flexible: theformatallowsforfutureextensionsandprivateadd-ons,withoutcompromisinginter-
changeabilityofbasicPNG.
Robust:thedesignsupportsfullfileintegritycheckingaswellassimple,quickdetectionofcommon
transmissionerrors.
Themainpartofthisspecificationgivesthedefinitionofthefileformatandrecommendationsforencoder
anddecoderbehavior.Anappendixgivestherationaleformanydesigndecisions.Althoughtherationaleis
notpartoftheformalspecification,readingitcanhelpimplementorsunderstandthedesign.Cross-references
inthemaintextpointtorelevantpartsoftherationale. Additionalappendixes,alsonotpartoftheformal
specification,providetutorialsongammaandcolortheoryaswellasothersupportingmaterial.
Inthisspecification,theword“must”indicatesamandatoryrequirement,while“should”indicatesrecom-
mendedbehavior.
SeeRationale:Whyanewfileformat?(Section12.1),Whythesefeatures? (Section12.2),Whynotthese
features?(Section12.3),WhynotuseformatX?(Section12.4).
Pronunciation
PNGispronounced“ping”.
2 DataRepresentation
ThischapterdiscussesbasicdatarepresentationsusedinPNGfiles,aswellastheexpectedrepresentationof
theimagedata.
2.1 Integersandbyteorder
Allintegersthatrequiremorethanonebytemustbeinnetworkbyteorder:themostsignificantbytecomes
first,thenthelesssignificantbytesindescendingorderofsignificance(MSBLSBfortwo-byteintegers,B3
B2B1B0forfour-byteintegers). Thehighestbit(value128)ofabyteisnumberedbit7;thelowestbit
(value1)isnumberedbit0.Valuesareunsignedunlessotherwisenoted. Valuesexplicitlynotedassigned
arerepresentedintwo’scomplementnotation.
SeeRationale:Byteorder(Section12.5).
2.2 Colorvalues
ColorscanberepresentedbyeithergrayscaleorRGB(red,green,blue)sampledata.Grayscaledatarepre-
sentsluminance;RGBdatarepresentscalibratedcolorinformation(ifthecHRMchunkispresent)oruncali-
brateddevice-dependentcolor(ifcHRMisabsent).Allcolorvaluesrangefromzero(representingblack)to
2. DATAREPRESENTATION
7
mostintenseatthemaximumvalueforthesampledepth. Notethatthemaximumvalueatagivensample
depthis(2ˆsampledepth)-1,not2ˆsampledepth.
Samplevaluesarenotnecessarilylinear;thegAMAchunkspecifiesthegammacharacteristicofthesource
device,andviewersarestronglyencouragedtocompensateproperly.SeeGammacorrection(Section2.7).
SourcedatawithaprecisionnotdirectlysupportedinPNG(forexample,5bit/sampletruecolor)mustbe
scaleduptothenexthighersupportedbitdepth.Thisscalingisreversiblewithnolossofdata,anditreduces
thenumberofcasesthatdecodershavetocopewith. SeeRecommendationsforEncoders: Sampledepth
scaling(Section9.1)andRecommendationsforDecoders:Sampledepthrescaling(Section10.4).
2.3 Imagelayout
Conceptually,aPNGimageisarectangularpixelarray,withpixelsappearingleft-to-rightwithineachscan-
line,andscanlinesappearingtop-to-bottom. (Forprogressivedisplaypurposes,thedatamayactuallybe
transmittedinadifferentorder;seeInterlaceddataorder,Section2.6.)Thesizeofeachpixelisdetermined
bythebitdepth,whichisthenumberofbitspersampleintheimagedata.
Threetypesofpixelaresupported:
Anindexed-colorpixelisrepresentedbyasinglesamplethatisanindexintoasuppliedpalette.The
imagebitdepthdeterminesthemaximumnumberofpaletteentries,butnotthecolorprecisionwithin
thepalette.
Agrayscalepixelisrepresentedbyasinglesamplethatisagrayscalelevel,wherezeroisblackand
thelargestvalueforthebitdepthiswhite.
Atruecolorpixelisrepresentedbythreesamples: red(zero=black,max=red)appearsfirst,then
green(zero=black,max=green),thenblue(zero=black,max=blue). Thebitdepthspecifiesthe
sizeofeachsample,notthetotalpixelsize.
Optionally,grayscaleandtruecolorpixelscanalsoincludeanalphasample,asdescribedinthenextsection.
Pixelsarealwayspackedintoscanlineswithnowastedbitsbetweenpixels.Pixelssmallerthanabytenever
crossbyteboundaries;theyarepackedintobyteswiththeleftmostpixelinthehigh-orderbitsofabyte,the
rightmostinthelow-orderbits. Permittedbitdepthsandpixeltypesarerestrictedsothatinallcasesthe
packingissimpleandefficient.
PNGpermitsmulti-samplepixelsonlywith8-and16-bitsamples,somultiplesamplesofasinglepixelare
neverpackedintoonebyte.16-bitsamplesarestoredinnetworkbyteorder(MSBfirst).
Scanlinesalwaysbeginonbyteboundaries. Whenpixelshavefewerthan8bitsandthescanlinewidthis
notevenlydivisiblebythenumberofpixelsperbyte,thelow-orderbitsinthelastbyteofeachscanlineare
wasted.Thecontentsofthesewastedbitsareunspecified.
Anadditional“filtertype”byteisaddedtothebeginningofeveryscanline(seeFiltering,Section2.5).The
filtertypebyteisnotconsideredpartoftheimagedata,butitisincludedinthedatastreamsenttothecom-
pressionstep.
8
PNG(PORTABLENETWORKGRAPHICS)SPECIFICATION
2.4 Alphachannel
Analphachannel,representingtransparencyinformationonaper-pixelbasis,canbeincludedingrayscale
andtruecolorPNGimages.
Analphavalueofzerorepresentsfulltransparency,andavalueof(2ˆbitdepth)-1representsafullyopaque
pixel.Intermediatevaluesindicatepartiallytransparentpixelsthatcanbecombinedwithabackgroundimage
toyieldacompositeimage. (Thus,alphaisreallythedegreeofopacityofthepixel.Butmostpeoplerefer
toalphaasprovidingtransparencyinformation,notopacityinformation,andwecontinuethatcustomhere.)
Alphachannelscanbeincludedwithimagesthathaveeither8or16bitspersample,butnotwithimagesthat
havefewerthan8bitspersample.Alphasamplesarerepresentedwiththesamebitdepthusedfortheimage
samples.ThealphasampleforeachpixelisstoredimmediatelyfollowingthegrayscaleorRGBsamplesof
thepixel.
Thecolorvaluesstoredforapixelarenotaffectedbythealphavalueassignedtothepixel.Thisruleissome-
timescalled“unassociated”or“non-premultiplied”alpha. (Anothercommontechniqueistostoresample
valuespremultipliedbythealphafraction;ineffect,suchanimageisalreadycompositedagainstablack
background.PNGdoesnotusepremultipliedalpha.)
Transparencycontrolisalsopossiblewithoutthestoragecostofafullalphachannel. Inanindexed-color
image,analphavaluecanbedefinedforeachpaletteentry.Ingrayscaleandtruecolorimages,asinglepixel
valuecanbeidentifiedasbeing“transparent”.ThesetechniquesarecontrolledbythetRNSancillarychunk
type.
IfnoalphachannelnortRNSchunkispresent,allpixelsintheimagearetobetreatedasfullyopaque.
Viewerscansupporttransparencycontrolpartially,ornotatall.
SeeRationale:Non-premultipliedalpha(Section12.8),RecommendationsforEncoders:Alphachannelcre-
ation(Section9.4),andRecommendationsforDecoders:Alphachannelprocessing(Section10.8).
2.5 Filtering
PNGallowstheimagedatatobefilteredbeforeitiscompressed.Filteringcanimprovethecompressibility
ofthedata.Thefilterstepitselfdoesnotreducethesizeofthedata.AllPNGfiltersarestrictlylossless.
PNGdefinesseveraldifferentfilteralgorithms,including“None”whichindicatesnofiltering.Thefilteral-
gorithmisspecifiedforeachscanlinebyafiltertypebytethatprecedesthefilteredscanlineintheprecom-
pressiondatastream.Anintelligentencodercanswitchfiltersfromonescanlinetothenext.Themethodfor
choosingwhichfiltertoemployisuptotheencoder.
SeeFilterAlgorithms(Chapter6)andRationale:Filtering(Section12.9).
2. DATAREPRESENTATION
9
2.6 Interlaceddataorder
APNGimagecanbestoredininterlacedordertoallowprogressivedisplay.Thepurposeofthisfeatureisto
allowimagesto“fadein”whentheyarebeingdisplayedon-the-fly.Interlacingslightlyexpandsthefilesize
onaverage,butitgivestheuserameaningfuldisplaymuchmorerapidly.Notethatdecodersarerequiredto
beabletoreadinterlacedimages,whetherornottheyactuallyperformprogressivedisplay.
Withinterlacemethod0,pixelsarestoredsequentiallyfromlefttoright,andscanlinessequentiallyfromtop
tobottom(nointerlacing).
Interlacemethod1,knownasAdam7afteritsauthor,AdamM.Costello,consistsofsevendistinctpasses
overtheimage. Eachpasstransmitsasubsetofthepixelsintheimage. . Thepassinwhicheachpixelis
transmittedisdefinedbyreplicatingthefollowing8-by-8patternovertheentireimage,startingattheupper
leftcorner:
1 6 6 4 4 6 6 2 6 6 4 4 6
7 7 7 7 7 7 7 7 7 7 7 7 7
5 6 6 5 5 6 6 5 6 6 5 5 6
7 7 7 7 7 7 7 7 7 7 7 7 7
3 6 6 4 4 6 6 3 6 6 4 4 6
7 7 7 7 7 7 7 7 7 7 7 7 7
5 6 6 5 5 6 6 5 6 6 5 5 6
7 7 7 7 7 7 7 7 7 7 7 7 7
Withineachpass,theselectedpixelsaretransmittedlefttorightwithinascanline,andselectedscanlines
sequentiallyfromtoptobottom.Forexample,pass2containspixels4,12,20,etc.ofscanlines0,8,16,etc.
(numberingfrom0,0attheupperleftcorner).Thelastpasscontainstheentiretyofscanlines1,3,5,etc.
Thedatawithineachpassislaidoutasthoughitwereacompleteimageoftheappropriatedimensions.
Forexample,ifthecompleteimageis16by16pixels,thenpass3willcontaintwoscanlines,eachcontaining
fourpixels. Whenpixelshavefewerthan8bits,eachsuchscanlineispaddedasneededtofillanintegral
numberofbytes(seeImagelayout,Section2.3).Filteringisdoneonthisreducedimageintheusualway,
andafiltertypebyteistransmittedbeforeeachofitsscanlines(seeFilterAlgorithms,Chapter6).Noticethat
thetransmissionorderisdefinedsothatallthescanlinestransmittedinapasswillhavethesamenumberof
pixels;thisisnecessaryforproperapplicationofsomeofthefilters.
Caution:Iftheimagecontainsfewerthanfivecolumnsorfewerthanfiverows,somepasseswillbeen-
tirelyempty.Encodersanddecodersmusthandlethiscasecorrectly.Inparticular,filtertypebytesareonly
associatedwithnonemptyscanlines;nofiltertypebytesarepresentinanemptypass.
SeeRationale:Interlacing(Section12.6)andRecommendationsforDecoders:Progressivedisplay(Section
10.9).
10
PNG(PORTABLENETWORKGRAPHICS)SPECIFICATION
2.7 Gammacorrection
PNGimagescanspecify,viathegAMAchunk,thegammacharacteristicoftheimagewithrespecttothe
originalscene.Displayprogramsarestronglyencouragedtousethisinformation,plusinformationaboutthe
displaydevicetheyareusingandroomlighting,topresenttheimagetotheviewerinawaythatreproduces
whattheimage’soriginalauthorsawascloselyaspossible.SeeGammaTutorial(Chapter13)ifyouaren’t
alreadyfamiliarwithgammaissues.
Gammacorrectionisnotappliedtothealphachannel,ifany.Alphasamplesalwaysrepresentalinearfraction
offullopacity.
Forhigh-precisionapplications,theexactchromaticityoftheRGBdatainaPNGimagecanbespecified
viathecHRMchunk,allowingmoreaccuratecolormatchingthangammacorrectionalonewillprovide.See
ColorTutorial(Chapter14)ifyouaren’talreadyfamiliarwithcolorrepresentationissues.
SeeRationale: Whygamma? ? (Section12.7),RecommendationsforEncoders: : Encodergammahandling
(Section9.2),andRecommendationsforDecoders:Decodergammahandling(Section10.5).
2.8 Textstrings
APNGfilecanstoretextassociatedwiththeimage,suchasanimagedescriptionorcopyrightnotice.Key-
wordsareusedtoindicatewhateachtextstringrepresents.
ISO8859-1(Latin-1)isthecharactersetrecommendedforuseintextstrings[ISO-8859].Thischaracterset
isasupersetof7-bitASCII.
CharactercodesnotdefinedinLatin-1shouldnotbeused,becausetheyhavenoplatform-independentmean-
ing.Ifanon-Latin-1codedoesappearinaPNGtextstring,itsinterpretationwillvaryacrossplatformsand
decoders. SomesystemsmightnotevenbeabletodisplayallthecharactersinLatin-1,butmostmodern
systemscan.
Provisionisalsomadeforthestorageofcompressedtext.
SeeRationale:Textstrings(Section12.10).
3 FileStructure
APNGfileconsistsofaPNGsignaturefollowedbyaseriesofchunks. Thischapterdefinesthesignature
andthebasicpropertiesofchunks.Individualchunktypesarediscussedinthenextchapter.
3.1 PNGfilesignature
ThefirsteightbytesofaPNGfilealwayscontainthefollowing(decimal)values:
Documents you may be interested
Documents you may be interested