Asiakirjan PNG-kuva (.png)

W3C-suositus Standardi

Portable Network Graphics (PNG) on vapaasti käytettävä rasterigrafiikkatiedostomuoto, joka tukee häviötöntä tiedonpakkausta, indeksoituja värejä ja muuttuvaa alfakanavan läpinäkyvyyttä.

Muunna tiedostot muodosta PNG muotoon JPG

Ilmainen selaimessa toimiva muunnin, jolla voit muuntaa tiedostoja muodosta PNG muotoon JPG. Muunna tiedostot hetkessä laitteellasi.

Pakkaa PNG verkossa

Yksityisesti - tiedostot eivät koskaan poistu laitteeltasi

Tarkastele tiedostoa ja sen metatietoja

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PNG-tiedostot tarkistamalla tiedoston alun binäärisarjan:

Valitse tai pudota tiedostot tähän

Yksityisesti - tiedostot eivät koskaan poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa Ulkoisille palvelimille ei ole ladattu yhtään tavua. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

Otsaketunniste tavutasolla (tunnistetavut)

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PNG-tiedostot tarkistamalla tiedoston alun binäärisarjan:

HEKSADEKSIMAALINEN TUNNISTE (SIJAINTI 0):

89 50 4E 47 0D 0A 1A 0A

ASCII-ESITYSTAPA: .PNG....

Standardointi: W3C-suositus (1996) / ISO/IEC 15948:2004

Tekniset tiedot

SäiliöarkkitehtuuriLohkoihin perustuva binäärisäiliö, jonka jokaisen lohkon eheys tarkistetaan 4 tavun CRC32-summalla
PakkausDeflate (LZ77 + Huffman-koodaus) viidellä ennustavalla rivisuodattimella (None, Sub, Up, Average, Paeth)
Tavujärjestys (Endianness)Big-endian (verkkotavujärjestys) lohkojen pituuksille, mitoille ja CRC-tarkistussummille
VäriavaruudetsRGB, Display P3, Indeksoitu paletti (1-8 bittiä), Harmaasävy, Täysväri (24/48-bittinen)
Kanavat ja rakenneRGB + alfa (jopa 16 bittiä per kanava / 64-bittinen RGBA)
Suurimmat mitat2 147 483 647 x 2 147 483 647 pikseliä (4-bytiset etumerkittömät kokonaisluvut)
LäpinäkyvyysTäysi 8-bittinen / 16-bittinen muuttuva alfaläpinäkyvyyskanava
Suoratoisto ja progressiivinen latausAdam7 7-vaiheinen lomitusalgoritmi mahdollistaa progressiivisen 2D-skannausrivien hahmonnuksen

Tekninen vertailumatriisi: PNG vs. kilpailijat

Tekninen attribuuttiPNG (Nykyinen)WebPAVIFJPEG
PakkaustyyppiTäysin häviötön (Deflate + 2D-ennustavat suodattimet)Häviöllinen (VP8) ja häviötön (VP8L)Häviöllinen (AV1 intra) ja häviötönPuhdas häviöllinen (Diskreetti kosinimuunnos)
AlfaläpinäkyvyysTäysi 8-bittinen / 16-bittinen muuttuva alfakanava8-bittinen alfakanava tuettu8-bittinen / 10-bittinen / 12-bittinen alfa tuettuEi läpinäkyvyyskanavan tukea
Tiedostokoko (Valokuvat)Valokuvissa usein suurempi kuin häviöllisissä muodoissa; suhteellinen tiedostokoko vaihtelee kuvan ja koodaimen mukaan.Voi olla JPEG:iä pienempi; tulos vaihtelee kuvan ja koodaimen mukaan.Voi olla JPEG:iä pienempi; tulos vaihtelee kuvan ja koodaimen mukaan.Keskisuuri perustaso
Tiedostokoko (Grafiikka/UI)Erittäin kompakti kuvakaappauksille, viivataiteelle ja tekstilleErinomainen häviötön tilaHyvä, mutta hitaampi koodataHeikko (tuottaa reunaheijastuksia terävien reunojen ympärille)
SelainyhteensopivuusSuurimmat selaimet tukevat; saatavuus riippuu selaimesta ja sen versiosta.Laaja tuki monissa nykyisissä selaimissa; kattavuus vaihtelee version ja alustan mukaan.Monet nykyiset selaimet tukevat; kattavuus vaihtelee version ja alustan mukaan.Laaja tuki; saatavuus vaihtelee tuotteen ja version mukaan.

Yleiset vioittumistavat ja heksadesimaalinen palautusopas

Kuvankatseluohjelma näyttää virheen 'Fatal error: Not a valid PNG file' tai ei avaa tiedostoa.

Perussyy: ASCII-siirtotila on muuttanut ensimmäiset 8 tavua (merkit 0x0D 0x0A ovat muuttuneet muotoon 0x0A tai 0x0D 0x0D 0x0A).

Korjaus: Avaa tiedosto heksadesimaalieditorissa ja varmista, että ensimmäiset 8 tavua vastaavat arvoja '89 50 4E 47 0D 0A 1A 0A'. Näiden tarkkojen 8 otsikkotavun palauttaminen korjaa kuvan usein.

pngcheck raportoi 'CRC error in chunk IDAT' tai kuva latautuu osittain viallisilla alariveillä.

Perussyy: Bittivioittuminen pakatussa zlib-tietovirrassa tai virheellinen CRC32-tarkistussumma IDAT-lohkossa.

Korjaus: Käytä komentoa pngcheck -f tai Deflate-virran palautustyökaluja laskeaksesi kelvolliset CRC32-arvot uudelleen tai pura ehjät skannausrivit vialliseen lohkoon asti.

Kuva näkyy työpöytäkatselmissa oikein, mutta epäonnistuu iOS-sovelluksissa.

Perussyy: iOS odottaa Applen omaa CgBI-tavujärjestyksellä vaihdettua muotoa tai ei-standardeja väriavaruuslohkoja.

Korjaus: Normalisoi kuva komennolla 'pngcrush -revert-iphone-optimizations' palauttaaksesi standardin W3C RGBA-järjestyksen.

Tietoturva-analyysi ja tiedostojäsentimien hyökkäysvektorit

PNG:tä tukevat monet käyttöjärjestelmät ja sovellukset. Tietoturvariskeihin kuuluvat dekooderin muistin ehtyminen ja haitalliset lisälohkot.

Tunnetut hyökkäysvektorit

  • Ylisuuret tEXt- ja zTXt-metatietolohkot, jotka laukaisevat muistin loppumisen (OOM) palvelunestohyökkäyksen hiekkalaatikkoon eristämättömissä purkajissa.
  • Kekomuistin puskurin ylivuotohaavoittuvuudet vanhoissa libpng-julkaisuissa (esim. CVE-2015-8126 funktiossa png_set_PLTE).
  • Pikselitulvapurkuhyökkäykset, joissa pienitiedostoinen kuva ilmoittaa valtavat mitat (esim. 100 000 x 100 000 pikseliä).
  • Steganografinen tietovuoto, jossa salattuja hyötykuormia piilotetaan oheisiin yksityisiin lohkoihin (esim. eXIf tai mukautetut lohkotyypit).

Tietoturvan parhaat käytännöt: Validoi aina kuvan mitat ennen pikselipuskureiden varaamista muistiin. Poista ei-olennaiset oheislohkot (eXIf, tEXt) käyttäjän latauksista muistiturvallisella desinfiointityökalulla.

Historia ja virstanpylväät

2004Standardoitu kansainvälisesti standardilla ISO/IEC 15948.
1996PNG 1.0 julkaistiin W3C-suosituksena.
1995Luotiin Usenet-ryhmässä comp.graphics avoimeksi korvaajaksi GIF-muodolle Unisysin LZW-patenttimaksujen perinnän seurauksena.

Tärkeimmät edut

  • PNG käyttää häviötöntä pakkausta, joten muuttumattoman kuvan koodaus ei aiheuta pakkaushäviötä; muokkaus tai värimuunnos voi silti muuttaa pikseliarvoja.
  • Tasainen 8-bittinen alfakanavan läpinäkyvyys mahdollistaa siistin yhdistämisen monimutkaisiin taustoihin.
  • Gammankorjaus- ja kromaattisuuslohkot varmistavat yhtenäisen hahmonnuksen eri näytöillä.

Tekniset rajoitukset

  • Valokuvasisällön tiedostokoot ovat huomattavasti suurempia kuin moderneissa häviöllisissä muodoissa, kuten WebP:ssä tai AVIF:ssä.
  • Ei natiivia moniruutuista animaatiota standardissa PNG:ssä (vaatii APNG-laajennuksen).
  • Korkea bittisyvyys (16 bittiä per kanava) luo valtavia pakkaamattomia muistinsisäisiä purkupuskureita.

Mielenkiintoisia teknisiä faktoja

  • 8-tavuinen tunniste suunniteltiin erityisesti FTP-siirtojen CR/LF-rivinvaihtovioitusten havaitsemiseen.
  • PNG:n epävirallinen rekursiivinen akronyymi oli 'PNG's Not GIF'.
  • Apple käyttää iOS-sovellusten PNG-tiedostoissa patentoitua CgBI-lohkoa, joka kääntää RGBA:n muotoon BGRA suoraan GPU-renderöintiä varten.

Usein kysytyt tekniset kysymykset

Miksi PNG-tiedoston koko joskus kasvaa, kun se tallennetaan kuvankatselu- tai muokkausohjelmassa?

Eri ohjelmistot käyttävät vaihtelevia Deflate-pakkaustasoja ja ennustavia rivisuodattimien heuristiikkoja. Ohjelmat kuten Photoshop lisäävät usein pakkaamattomia väriprofiileja, XMP-metatietolohkoja ja optimoimattomia IDAT-lohkojen kokoja. Erilliset työkalut, kuten File2File.app Compressor, arvioivat uudelleen kaikki 5 rivisuodatinta saavuttaakseen mahdollisimman pienen tiedostokoon.

Mitä eroa on PNG-8:lla ja PNG-24:llä?

PNG-8 käyttää jopa 256 värin indeksoitua väripalettia (samaan tapaan kuin GIF), mikä tuottaa erittäin pieniä tiedostoja, jotka sopivat yksinkertaisille kuvakkeille. PNG-24 tukee 16,7 miljoonaa väriä (Truecolor 8 bittiä per kanava), ja PNG-32 lisää 8-bittisen alfaläpinäkyvyyskanavan.

Miksi PNG:ssä on 5 ennustavaa rivisuodatinta?

Deflate pakkaa toistuvia tavukuvioita. Koska valokuvien tai liukuvärien pikseliarvot muuttuvat vähitellen, PNG suodattaa jokaisen skannausrivin (None, Sub, Up, Average, Paeth) laskemalla erot vierekkäisten pikselien välillä. Tämä muuntaa liukuväridatan lähes nollatavujen merkkijonoiksi, jotka pakkautuvat dramaattisesti paremmin Deflaten avulla.

Tukeeko PNG CMYK-väriavaruuksia kaupalliseen painatukseen?

Ei. Virallinen W3C PNG -spesifikaatio rajoittaa väritietotyypit tarkoituksella harmaasävyyn, indeksoituihin väreihin ja RGB:hen. Ammattimaiset painotyöt, jotka vaativat CMYK-värejä, edellyttävät TIFF- tai PDF-säiliöiden käyttöä.

Aiheeseen liittyvät PNG-muunnosparit

PNG kohteeseen JPG

PNG-rasterikuvien muuntaminen JPEG-muotoon pienentää tiedostokokoa soveltamalla häviöllistä pakkausta, minkä ansiosta kuvat latautuvat verkkosivustoilla nopeammin ja vievät vähemmän tallennustilaa.

JPG kohteeseen PNG

Häviöllisen JPEG-kuvan muuntaminen häviöttömäksi PNG-kuvaksi estää laadun heikkenemisen edelleen ja lisää tuen alfakanavan läpinäkyvyydelle.

PNG kohteeseen WEBP

PNG-kuvien muuntaminen WebP-muotoon voi pienentää tiedostokokoa ja säilyttää läpinäkyvyyden. Tulos riippuu häviöllisestä tai häviöttömästä koodauksesta ja kuvan sisällöstä.

WEBP kohteeseen PNG

WebP:n muuntaminen PNG:ksi tuottaa still-kuvan PNG:tä tukevaa ohjelmistoa varten. Animaatio ei säily, eikä muunnos palauta häviöllisessä lähdekuvassa menetettyjä yksityiskohtia.

HEIC kohteeseen PNG

HEIC-muodon muuntaminen PNG-muotoon muuttaa häviöllisellä HEVC-pakkauksella pakatut valokuvat laajasti tuetuiksi häviöttömiksi kuvatiedostoiksi.

SVG kohteeseen PNG

SVG-vektoritiedostojen muuntaminen PNG-rasterikuviksi muuttaa skaalautuvat koodipohjaiset grafiikat kiinteiksi pikseliruudukoiksi yleisen sovellusyhteensopivuuden takaamiseksi.

PNG kohteeseen SVG

Upota rasterimuotoiset PNG-kuvat SVG-XML-vektorisäiliöön responsiivista verkkoskaalausta ja vektoriyhteensopivaa asettelua varten.

PSD kohteeseen PNG

Muunna Adobe Photoshop PSD -grafiikka häviöttömiksi PNG-kuviksi täydellisellä alfakanavan läpinäkyvyydellä suoraan verkkoselaimessasi ilman palvelintiedonsiirtoa.