PNG (Portable Network Graphics) | ||
---|---|---|
PNG | ||
Terninger. | ||
utvikler | ||
PNG Development Group (donert til W3C ) | ||
http://www.libpng.org/pub/png/ og http://png-mng.sourceforge.net/pub/png/ | ||
Generell informasjon | ||
filutvidelse | .png | |
mime-type | image/png | |
skriv inn kode |
PNGf PNG | |
Uniform Type Identifier | public.png | |
magisk tall | 89 50 4e 47 0d 0a 1a 0a | |
Første utgivelse | 1. oktober 1996 | |
formattype | Tapsfri komprimert rasterplott | |
utvidet fra | Deflasjon | |
utvidet til | APNG , JNG og MNG | |
Standarder) | ISO 15948, IETF RFC 2083 | |
åpent format | ||
PNG ( Portable Network Graphics , uttales " ping" ) er et grafikkformat basert på en ikke - patentfri tapsfri komprimeringsalgoritme for punktgrafikk . Dette formatet ble i stor grad utviklet for å overvinne manglene ved GIF -formatet og lar bilder med større kontrastdybde og andre viktige data lagres.
PNG-bilder bruker .png -utvidelsen og har fått en MIME-type ( image/png ) godkjent 14. oktober 1996.
En PNG-fil starter med en 8-byte signatur, heksadesimale verdier er: 89 50 4E 47 0D 0A 1A 0A, desimalverdier er: 137 80 78 71 13 10 26 10; hver verdi er der av en bestemt grunn. [ 1 ]
Byte(r) | Hensikt |
---|---|
89 | Den har den høyeste biten satt til 1 for å oppdage overføringssystemer som ikke støtter 8-bits data og for å redusere risikoen for at en tekstfil feilaktig tolkes som PNG. |
50 4E 47 | I ASCII lar bokstavene "PNG" en person identifisere formatet hvis han ser det i et tekstredigeringsprogram. |
0D 0A | En ny linje i DOS- stil (CRLF) for å oppdage linjesluttkonverteringer mellom DOS og UNIX. |
1A | En byte som stopper visningen av filen under DOS når TYPE-kommandoen er brukt. |
0A | En ny linje i UNIX (LF) for å oppdage linjesluttkonvertering mellom DOS og UNIX. |
Etter overskriften er en serie segmenter, som hver lagrer viss informasjon om bildet. Segmenter er selverklært som kritiske eller hjelpesegmenter , slik at et program som møter et hjelpesegment og ikke forstår det trygt kan ignorere det. Den segmentbaserte strukturen er designet for å kunne utvide PNG-formatet samtidig som den opprettholder kompatibilitet med eldre versjoner.
Hver av seksjonene har en overskrift som spesifiserer størrelsen og typen, umiddelbart etterfulgt av dataene og datasjekksummen . Seksjoner har et navn på fire bokstaver som skiller mellom store og små bokstaver. Bruken av store eller små bokstaver i det navnet gir informasjon til dekodere om seksjonene som ikke gjenkjennes.
Hvis den første bokstaven er stor betyr dette at seksjonen er viktig, ellers vil den være hjelpefunksjon. De essensielle seksjonene er nødvendige for å lese filen, hvis dekoderen finner en essensiell seksjon som den ikke gjenkjenner, må den avbryte lesingen.
Dersom den andre bokstaven er stor betyr dette at seksjonen er offentlig i spesifikasjonen eller seksjonsregistrering for spesielle formål, ellers vil den være privat (ikke standardisert). Denne bruken av store og små bokstaver sikrer at det aldri oppstår konflikter mellom offentlige og private seksjoner.
Den tredje bokstaven må være stor for å oppfylle PNG-spesifikasjonene og er reservert for fremtidig utvidelse.
Den fjerde bokstaven angir om det er trygt å kopiere seksjonen i tilfelle den ikke gjenkjennes, hvis den er med små bokstaver, er det trygt å kopiere seksjonen uavhengig av hvor mye endring filen har gjennomgått, hvis den er store bokstaver skal den bare kopieres hvis ikke det er kritiske seksjoner som har gjennomgått endringer.
En dekoder må kunne forstå disse delene for å kunne lese og gjengi en PNG:
Andre attributter som kan lagres i et PNG-bilde er: gammaverdier, bakgrunnsfarge og tekstinformasjon. PNG støtter også fargekorrigering ved bruk av fargestyringssystemer som sRGB .
Den lille første bokstaven i disse delene indikerer at de ikke kreves av PNG-spesifikasjonen, den lille siste bokstaven indikerer at de er trygge å kopiere selv om den aktuelle applikasjonen ikke forstår dem.
Andre attributter som kan lagres i en PNG inkluderer gammakorreksjonsverdier , bakgrunnsfarge og metadata . PNG bruker også fargekorrigering som brukes av fargestyringssystemer som sRGB . Noen programmer som Adobe Photoshop har dette systemet.
Bilder i PNG-format kan være indekserte palettbilder eller bestå av en eller flere kanaler . Hvis det er mer enn én kanal, har alle kanalene samme antall bits per piksel (også kalt bitdybde per kanal). Selv om den offisielle PNG-spesifikasjonen navngir bitdybden per kanal, navngir redigeringsprogrammer normalt bare det totale antallet biter per piksel, det vil si fargedybden .
Antall kanaler avhenger av om bildet er i gråtoner eller farger og om det har en alfakanal (også kalt en gjennomsiktighetskanal). Kombinasjonene tillatt av PNG er:
På den annen side er indekserte bilder begrenset til maksimalt 256 farger. Denne fargepaletten er lagret med en kanaldybde på 8 biter. Paletten kan ikke ha flere farger enn de som er markert med bitdybden, det vil si 2 8 = 256 farger, selv om den kan ha færre (for eksempel vil et bilde med 50 farger bare lagre 50 oppføringer, og unngå å lagre data som ikke brukes ).
Bitdybde per kanal | 1 | to | 4 | 8 | 16 |
Indeksert bilde (1 kanal) | 1 | to | 4 | 8 | |
Gråtoner (1 kanal) | 1 | to | 4 | 8 | 16 |
Gråtoner med alfa (2 kanaler) | 16 | 32 | |||
True Color (RGB) (3 kanaler) | 24 | 48 | |||
Ekte farger med alfa (RGBA) (4 kanaler) | 32 | 64 |
Tabellen til høyre angir fargedybden for hvert bildeformat som PNG støtter. Dette er tatt fra bitdybden per kanal og multiplisert med antall kanaler. Bokser i rødt representerer kombinasjoner som ikke støttes. Standarden krever at dekodere skal kunne lese alle tilgjengelige formater, men mange bilderedigerere kan bare skrive ut en liten delmengde av dem.
PNG tilbyr et bredt utvalg av gjennomsiktighetsalternativer: med ekte farger eller gråtoner kan til og med en enkelt piksel erklæres som gjennomsiktig eller en alfakanal kan legges til. For bilder som bruker paletter, kan en alfakanal legges til palettoppføringene. Antallet slike lagrede verdier kan være mindre enn det totale antallet oppføringer i paletten, så resten av oppføringene vil bli ansett som helt ugjennomsiktige. Søket etter piksler med binær gjennomsiktighet bør gjøres før noen fargereduksjon for å forhindre at noen piksler ved et uhell blir gjennomsiktige.
I motsetning til gjennomsiktigheten som tilbys av GIF som bare kan ta 2 verdier (helt gjennomsiktig eller helt ugjennomsiktig), lar PNGs alfakanal deg bruke høyere bitdybder for å oppnå semi-transparenseffekter, typisk for gjennomsiktige objekter. For eksempel, med en dybde på 8 bits for gjennomsiktighet, kan du oppnå 2 8 = 256 forskjellige grader av gjennomsiktighet, som om det var en farge. [ 2 ]
Komprimeringsmetoden som brukes av PNG er kjent som deflasjon (" Deflate-algoritme "). Det finnes også filtreringsmetoder. I spesifikasjon 1.2 er en enkelt type filter definert, som inkluderer 5 pikselverdiprediksjonsmoduser, noe som er veldig nyttig for å forbedre komprimering, hvor en filtreringsmetode velges for hver linje i bildet ( skannelinje ) som forutsier fargen til hver pikselbasert på fargene til de forrige piksler og trekker fra fargen til gjeldende piksel, den predikerte fargen. De fem metodene er: Ingen, Sub, Opp, Gjennomsnittlig og Paeth .
Disse filtrene kan redusere den endelige filstørrelsen betydelig, selv om det i stor grad avhenger av inndatabildet. Kompresjonsalgoritmen kan ta seg av riktig valg av metoden som gir størst reduksjon.
MIME -medietypen for PNG er "image/png" (godkjent 14. oktober 1996).
APNG er en utvidelse av PNG som støtter animasjon. Dette formatet støtter visning av et enkelt bilde i tilfelle dekoderen ikke forstår filen. Den er akseptert av flere nettlesere [ 3 ] og har en .png -utvidelse . [ 4 ]
På den annen side er MNG et bildeformat som støtter animasjon og er basert på ideene og noen deler av PNG, men det er et komplekst system og tillater ikke visning av et enkelt bilde hvis det ikke er full støtte i fremviseren. av relevante bilder. [ 5 ]
PNG og JPEG er formater som er designet for forskjellige funksjoner, så det kan kun gjøres en generell sammenligning:
Noen versjoner av enkelte nettlesere viser gammakorreksjonsverdier selv når de ikke er spesifisert i PNG. Kjente nettlesere med PNG-skjermproblemer:
Slutteffekten er at fargen som vises i PNG-en ikke samsvarer med fargeskjemaet til resten av nettsiden. En enkel måte å omgå dette på er å omkode PNG ved å avkorte visse attributter. Noen verktøy for dette formålet: