Obraz PNG (.png)

Rekomendacja Standard

Portable Network Graphics (PNG) to rastrowy format plików graficznych, który nie podlega ograniczeniom patentowym i obsługuje bezstratną kompresję danych, kolory indeksowane oraz kanał alfa o zmiennym poziomie przezroczystości.

Konwertuj PNG na JPG

Darmowy konwerter z PNG na JPG w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Kompresuj PNG online

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki PNG, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki PNG, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

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

REPREZENTACJA ASCII: .PNG....

Normalizacja: Rekomendacja W3C (1996) / ISO/IEC 15948:2004

Specyfikacja techniczna

Architektura konteneraBinarny kontener oparty na blokach (chunkach) z 4-bajtową weryfikacją CRC32 dla każdego bloku
KompresjaDeflate (LZ77 + kodowanie Huffmana) z 5 predykcyjnymi filtrami linii skanowania (None, Sub, Up, Average, Paeth)
Kolejność bajtów (Endianness)Big-Endian (kolejność bajtów sieciowych) dla długości bloków, wymiarów i sum kontrolnych CRC
Przestrzenie kolorówsRGB, Display P3, Paleta indeksowana (1-8 bitów), Skala szarości, Truecolor (24/48-bitowy)
Kanały i strukturaRGB + kanał alpha (do 16 bitów na kanał / 64-bitowy RGBA)
Maks. wymiary2,147,483,647 x 2,147,483,647 pikseli (4-bajtowe liczby całkowite bez znaku)
PrzezroczystośćPełny, zmienny kanał alfa o głębi 8 lub 16 bitów
Streaming i progresywne ładowanie7-przebiegowy algorytm przeplotu Adam7 umożliwiający progresywne renderowanie linii skanowania 2D

Techniczna macierz porównawcza: PNG a konkurencja

Atrybut technicznyPNG (Bieżący)WebPAVIFJPEG
Typ kompresjiŚciśle bezstratna (Deflate + filtry predykcyjne 2D)Stratna (VP8) i bezstratna (VP8L)Stratna (wewnątrzklatkowa AV1) i bezstratnaŚciśle stratna (dyskretna transformata kosinusowa)
Przezroczystość alphaPełny, zmienny 8-bitowy / 16-bitowy kanał alphaObsługiwany 8-bitowy kanał alphaObsługiwana przezroczystość 8-bitowa / 10-bitowa / 12-bitowaBrak obsługi kanału przezroczystości
Rozmiar pliku (fotografie)Duży (zazwyczaj od 3 do 6 razy większy niż w formatach stratnych)Mały (25%-35% mniejszy niż JPEG)Bardzo mały (40%-55% mniejszy niż JPEG)Średni poziom bazowy
Rozmiar pliku (grafika/interfejs)Bardzo mały rozmiar w przypadku zrzutów ekranu, rysunków liniowych i tekstuDoskonały tryb bezstratnyDobry, ale wolniejszy w kodowaniuSłaby (powoduje dzwonienie wzdłuż ostrych krawędzi)
Kompatybilność z przeglądarkami100% uniwersalna we wszystkich przeglądarkach od 1998 rokuWsparcie w ponad 97% nowoczesnych przeglądarekWsparcie w ponad 93% nowoczesnych przeglądarek100% uniwersalna

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Przeglądarka obrazów wyświetla błąd krytyczny „Fatal error: Not a valid PNG file" lub nie może otworzyć pliku.

Główna przyczyna: Pierwsze 8 bajtów zostało zmienione przez tryb transferu ASCII (zamiana 0x0D 0x0A na 0x0A lub 0x0D 0x0D 0x0A).

Odzyskiwanie: Otwórz plik w edytorze szesnastkowym i sprawdź, czy pierwsze 8 bajtów odpowiada wartościom „89 50 4E 47 0D 0A 1A 0A". Przywrócenie tych dokładnie 8 bajtów nagłówka często pozwala odzyskać obraz.

Program pngcheck zgłasza błąd „CRC error in chunk IDAT" lub obraz ładuje się częściowo z uszkodzonymi dolnymi liniami skanowania.

Główna przyczyna: Uszkodzenie bitowe w skompresowanym strumieniu danych zlib lub nieprawidłowa suma kontrolna CRC32 w bloku IDAT.

Odzyskiwanie: Użyj narzędzia pngcheck -f lub programów do odzyskiwania strumienia Deflate, aby ponownie obliczyć prawidłowe wartości CRC32 albo zdekompresować zachowane linie skanowania aż do uszkodzonego bloku.

Obraz renderuje się poprawnie w przeglądarkach na komputerach stacjonarnych, ale nie działa w aplikacjach systemu iOS.

Główna przyczyna: System iOS oczekuje zastrzeżonego formatu z zamienionymi bajtami CgBI firmy Apple lub niestandardowych bloków przestrzeni kolorów.

Odzyskiwanie: Znormalizuj obraz za pomocą polecenia „pngcrush -revert-iphone-optimizations", aby przywrócić standardową kolejność W3C RGBA.

Analiza bezpieczeństwa i wektory ataku na parser

PNG jest obsługiwany przez wiele systemów operacyjnych i aplikacji. Zagrożenia bezpieczeństwa obejmują wyczerpanie pamięci dekodera i złośliwe bloki pomocnicze.

Znane wektory ataku

  • Nadmiernie duże bloki metadanych tEXt i zTXt mogą wyczerpać pamięć i spowodować odmowę usługi (OOM) w dekoderach działających poza piaskownicą.
  • Podatności na przepełnienie bufora sterty (heap buffer overflow) w starszych wersjach biblioteki libpng (np. CVE-2015-8126 w png_set_PLTE).
  • Ataki typu „pixel flood”, w których obraz o małym rozmiarze pliku deklaruje ogromne wymiary (np. 100 000 x 100 000 pikseli).
  • Eksfiltracja steganograficzna ukrywająca zaszyfrowane ładunki w pomocniczych blokach prywatnych (np. eXIf lub niestandardowych typach bloków).

Najlepsze praktyki obronne: Zawsze weryfikuj wymiary obrazu przed alokacją buforów pikseli w pamięci. Podczas przesyłania plików usuwaj nieistotne bloki pomocnicze (eXIf, tEXt) za pomocą narzędzia oczyszczającego bezpiecznego dla pamięci.

Pochodzenie historyczne i kamienie milowe

2004Zestandaryzowany międzynarodowo jako ISO/IEC 15948.
1996Format PNG 1.0 został opublikowany jako rekomendacja W3C.
1995Utworzony w grupie dyskusyjnej Usenet comp.graphics jako otwarty zamiennik formatu GIF w odpowiedzi na egzekwowanie opłat patentowych LZW przez firmę Unisys.

Główne zalety

  • PNG używa kompresji bezstratnej, więc kodowanie niezmienionego obrazu nie powoduje strat kompresji; edycja lub konwersja kolorów może jednak zmienić wartości pikseli.
  • 8-bitowa przezroczystość alfa pozwala płynnie łączyć grafikę ze złożonymi tłami.
  • Bloki korekcji gamma i chromatyczności zapewniają spójne renderowanie na różnych monitorach.

Ograniczenia techniczne i wady

  • W przypadku fotografii pliki są znacznie większe niż w nowoczesnych formatach stratnych, takich jak WebP czy AVIF.
  • Brak wbudowanej animacji wieloklatkowej w standardowym formacie PNG (wymaga rozszerzenia APNG).
  • Wysoka głębia bitowa (16 bitów na kanał) tworzy ogromne, nieskompresowane bufory dekodowania w pamięci RAM.

Ciekawe informacje techniczne

  • 8-bajtowa sygnatura nagłówka została zaprojektowana specjalnie do wykrywania uszkodzeń znaków końca wiersza CR/LF podczas przesyłania przez FTP.
  • Nieoficjalny akronim rekurencyjny dla PNG to „PNG's Not GIF" (PNG to nie GIF).
  • Firma Apple używa zastrzeżonego bloku CgBI w plikach PNG aplikacji na system iOS, który zamienia kolejność z RGBA na BGRA w celu bezpośredniego renderowania przez procesor graficzny.

Często zadawane pytania techniczne

Dlaczego rozmiar pliku PNG czasami rośnie po zapisaniu go w edytorze graficznym?

Różne pakiety oprogramowania stosują różne poziomy kompresji Deflate i heurystyki predykcyjne filtrów wierszy. Programy takie jak Photoshop często dołączają nieskompresowane profile kolorów, bloki metadanych XMP i nieoptymalne rozmiary bloków IDAT. Specjalistyczne narzędzia, takie jak File2File.app Compressor, ponownie oceniają wszystkie 5 filtrów wierszy, aby uzyskać jak najmniejszy plik.

Jaka jest różnica między PNG-8 a PNG-24?

PNG-8 używa indeksowanej palety kolorów zawierającej do 256 barw (podobnie jak GIF), co generuje bardzo małe pliki odpowiednie dla prostych ikon. PNG-24 obsługuje 16,7 miliona kolorów (Truecolor, 8 bitów na kanał), przy czym wersja PNG-32 dodaje 8-bitowy kanał przezroczystości alpha.

Dlaczego format PNG posiada 5 predykcyjnych filtrów linii skanowania?

Algorytm Deflate kompresuje powtarzające się wzorce bajtów. Ponieważ wartości pikseli na fotografiach lub przejściach tonalnych zmieniają się stopniowo, filtr PNG przetwarza każdą linię skanowania (None, Sub, Up, Average, Paeth), obliczając różnice pomiędzy sąsiednimi pikselami. Przekształca to dane gradientowe w ciągi bajtów o wartościach bliskich zeru, które kompresują się znacznie lepiej przy użyciu algorytmu Deflate.

Czy PNG obsługuje przestrzenie kolorów CMYK do druku komercyjnego?

Nie. Oficjalna specyfikacja W3C PNG celowo ogranicza typy kolorów do skali szarości, palety indeksowanej oraz przestrzeni RGB. Profesjonalne procesy druku wymagające modelu CMYK muszą korzystać z kontenerów TIFF lub PDF.

Powiązane pary konwersji PNG

PNG do JPG

Konwersja rastrowych obrazów PNG do formatu JPEG zmniejsza rozmiar pliku poprzez zastosowanie kompresji stratnej, co sprawia, że obrazy szybciej ładują się na stronach internetowych i zajmują mniej miejsca.

JPG do PNG

Konwersja stratnego obrazu rastrowego JPEG na bezstratny obraz rastrowy PNG zapobiega dalszej utracie jakości przy kolejnych zapisach i zapewnia obsługę przezroczystości dzięki kanałowi alfa.

PNG do WEBP

Konwersja obrazów PNG do WebP może zmniejszyć rozmiar pliku i zachować przezroczystość. Wynik zależy od użycia kodowania stratnego lub bezstratnego oraz od zawartości obrazu.

WEBP do PNG

Konwersja WebP do PNG tworzy nieruchomy obraz zgodny z programami obsługującymi PNG. Animacja WebP nie zostanie zachowana, a utraconych szczegółów obrazu nie da się odzyskać.

HEIC do PNG

Konwersja formatu HEIC do PNG przekształca zdjęcia skompresowane stratnie za pomocą HEVC w szeroko obsługiwane, bezstratne pliki graficzne.

SVG do PNG

Konwersja plików wektorowych SVG na obrazy rastrowe PNG przekształca skalowalną grafikę opartą na kodzie w siatki o stałych pikselach, zapewniając uniwersalną zgodność z aplikacjami.

PNG do SVG

Umieść rastrowe obrazy PNG w wektorowym kontenerze SVG XML, aby responsywnie skalować je na stronach internetowych i integrować z układami obsługującymi grafikę wektorową.

PSD do PNG

Konwertuj pliki graficzne Adobe Photoshop PSD na bezstratne obrazy PNG z pełną przezroczystością kanału alfa bezpośrednio w przeglądarce, bez przesyłania danych na serwer.