pngcrush
Deweloperzy | Glenna Randersa-Pehrsona |
---|---|
Wersja stabilna | 1.8.13 / 29 sierpnia 2017
|
Magazyn | |
Napisane w | C |
System operacyjny | Międzyplatformowe |
Typ | Optymalizator obrazu |
Licencja | Podobny do licencji libpng |
Strona internetowa |
pngcrush to bezpłatne narzędzie wiersza poleceń o otwartym kodzie źródłowym do optymalizacji plików graficznych PNG . Zmniejsza rozmiar pliku bezstratnie – czyli wynikowy „zgnieciony” obraz będzie miał taką samą jakość jak obraz źródłowy.
Głównym celem pngcrush jest zmniejszenie rozmiaru strumienia danych PNG IDAT poprzez wypróbowanie różnych kombinacji metod kompresji i filtrów delta. Może być również używany do różnych manipulacji obrazami PNG, takich jak zmiana głębi bitowej , usuwanie niechcianych fragmentów pomocniczych lub dodawanie pewnych fragmentów, w tym fragmentów gAMA, tRNS, iCCP i fragmentów tekstowych.
Główna operacja
Głównym zastosowaniem pngcrush jest zmniejszenie rozmiaru danych obrazu zawartych w sekcji IDAT.
Dane pikseli w pliku PNG są kompresowane przy użyciu algorytmu LZ77 (który próbuje znaleźć powtarzające się sekwencje bajtów w danych źródłowych), a następnie dalej kompresowane przy użyciu algorytmu Huffmana . Ta kombinacja jest określana jako kompresja deflate . Przed kompresją na dane piksela nakładane są nieniszczące filtry delta.
Istnieje pięć możliwych typów filtrów, które można określić oddzielnie dla każdej linii skanowania oraz kilka możliwych strategii wyszukiwania dopasowań LZ77. Tak więc istnieje bardzo duża liczba różnych kombinacji sposobu kompresji obrazu. To, która kombinacja zapewnia najlepszą kompresję, będzie zależeć od właściwości poszczególnych obrazów.
pngcrush kompresuje obraz za pomocą wielu różnych kombinacji, a następnie przechowuje najmniejszy z wynikowych plików. Ponieważ nie jest możliwe przejrzenie wszystkich kombinacji, pngcrush używa heurystyki do wyboru metod do wypróbowania.
Domyślnie pngcrush używa tylko kilku typowych metod do zmiażdżenia pliku. Opcjonalnego argumentu „-brute” można użyć do siłowego , które wypróbuje 176 różnych metod zmiażdżenia w wersji 1.8.12 i nowszych lub 148 metod zmiażdżenia w wersjach od 1.7.45 do 1.8.11.
Zmniejszanie rozmiaru pliku poprzez usuwanie danych korekcji kolorów
Jedną z funkcji pngcrush jest możliwość usunięcia wszystkich danych korekcji kolorów ( gamma , balans bieli , profil kolorów ICC , standardowy profil kolorów RGB ) z plików PNG.
Ponieważ większość programów graficznych zawiera dodatkowe dane dotyczące korekcji kolorów, które zwykle nie są potrzebne [ według kogo? ] , usunięcie go może spowodować, że rozmiar pliku będzie nawet o 40% mniejszy niż oryginał. pngcrush, jeśli zostanie poinformowany, zmniejszy również bezstratnie głębię bitową obrazów lub zastosuje paletę kolorów, jeśli to możliwe, jeśli spowoduje to mniejszy rozmiar pliku. Wszystkie pomocnicze fragmenty i fragmenty tekstu można usunąć.
Manipulacja obrazem
pngcrush może służyć do zmiany kodowania kolorów obrazu. Na przykład, jeśli obraz zawiera 10 kolorów, ale ma paletę kolorów 256 wpisów (8-bitowych), pngcrush może zostać użyty do zmniejszenia palety kolorów do 4-bitowej i obcięcia palety do 10 wpisów.
pngcrush może również zmienić typ koloru obrazu. W przypadku obrazu w prawdziwych kolorach zmiana typu koloru z 2 na 0 powoduje jego konwersję na skalę szarości. Obrazy w skali szarości są na ogół mniejsze niż obrazy TrueColor, ponieważ oprócz opcjonalnego kanału alfa na piksel używany jest tylko jeden kanał 8-bitowy zamiast trzech. Obrazy w skali szarości są również generalnie mniejsze niż obrazy z paletą, ponieważ nie muszą definiować palety kolorów . W przypadku obrazu truecolor-alpha zmiana typu koloru z 6 na 2 usuwa kanał alfa.
Manipulowanie kawałkami i metadanymi
Obrazy PNG zawierają fragmenty z informacjami o obrazie, takie jak jego rozdzielczość (fragment fizyczny), czas ostatniej modyfikacji (fragment tIME) oraz metadane tekstowe (fragment tekstu i jego warianty). Dzięki pngcrush użytkownik może edytować lub usuwać te pomocnicze fragmenty.
Zobacz też
Dalsza lektura
- Souders, Steve (2009). Jeszcze szybsze strony internetowe: niezbędna wiedza dla inżynierów frontendu . Media O'Reilly. P. 142. ISBN 0-596-52230-4 .
- Sayood, Khalid (2003). Podręcznik bezstratnej kompresji . Prasa akademicka. s. 386–388. ISBN 0-12-620861-1 .
Linki zewnętrzne
- Oficjalna strona internetowa
- pngutils dla konsoli Win32
- widelec pngcrush ze zoptymalizowanym zlib przy użyciu instrukcji SSE2 +, opracowany przez CloudFlare