Pngcrush

[Stiahnuť] [Zoznam zmien]

Pngcrush je optimalizátor pre PNG (Portable Network Graphics) súbory. To môže byť spustený z príkazového riadku v okne MS-DOS, alebo z UNIX alebo Linux príkazového riadku.

Jej hlavným cieľom je znížiť veľkosť PNG IDAT dátový tok že sa snažia rôzne úrovne kompresie a PNG metódy filtra. To tiež môže byť použitý na odstránenie nežiaducich vedľajších kúsky, alebo sa pridať niektoré kúsky, vrátane gAMA, tRNS, iCCP, i textové kúsky.

Pngcrush, kedy staticky prepojené k dodanému zlib kódu, je veril byť imúnna voči zlib-1.1.3 "double-free" chyba, pretože v predvolenom nastavení zistí a odmieta akúkoľvek "double-free" pokus. Iba generuje správu "Dekompresie Chyba" a odmieta súbor.

Pngcrush je open source a môže byť použitý, modifikovaný a šírený kýmkoľvek bez platenia poplatku. Licencie, vložené v súbore pngcrush.c, je ekvivalentná ale nie je totožný s licenciou libpng nájdeného v libpng súboru png.h.

Zdrojový kód pre pngcrush je tu i binárne spustiteľné súbory, postavený dobrovoľníkmi tretích strán a nie vždy aktuálne, sú tu. Pngcrush využíva libpng a zlib, ktoré sú oba súčasťou tejto distribúcii zdrojové pngcrush. Oni sú mierne upravené:

  • Libpng je pngconf.h je upravený tak, aby "#include pngcrush.h", ktorý je používaný
    • na "#define out" nevyužitej časti knižnice
    • #define PNG_SETJMP_NOT_SUPPORTED
    • #define PNG_ABORT ()
    • nastaviť veľkosť vyrovnávacej pamäte IDAT na veľkú hodnotu, i
  • zlib je upravený tak, aby nastaviť TOO_FAR makro na 32767 v deflate.c

Ak dávate prednosť, môžete zostaviť len pngcrush.c zo zdrojovej distribúciu pngcrush i spustite ho s akciovom libpng i zlib, ktorý možno nájsť na internetových stránkach PNG, www.libpng.org/pub/png/. Ak tak urobíte,

  • iTXt kus nebudú podporované, ak vaše verzie libpng nepodporuje. Libpng začne podporovať iTXt kus v predvolenom nastavení s verziou 1.4.0.
  • pngcrush bude citlivejšie na pôsobenie rôznych podmienok, prepadové, ktoré boli opravené v Auguste 2004, ak používate unpatched libpng verzia staršia ako verzia 1.2.7/1.0.17.
  • pngcrush budú citlivé na zlib-1.1.3 dvojitým bez chyby, ak sa spojiť s pngcrush zlib-1.1.3 a verzie libpng napríklad akúkoľvek 1.0.x, ktorý nemá PNG_USER_MEM_SUPPORTED aktivovaná.
  • TOO_FAR bude 4096 miesto 32767 v deflate.c,
    čo bude mať za následok mierne väčších súborov a niečo rýchlejší prevedení.
  • tiež budete môcť čítať chybnej PNG súbory s "Príliš veľa IDAT".

Predkompilované binárne súbory pre Windows (beží v okne MS-DOS, postavený v DJGPP) a RISCOS platforiem (all snáď out-of-data) sa tu

Vidlica vývoja pngcrush existuje, Cosmin Truta, s mierne odlišnou sadu funkcií a hľadanie priestoru. Pozri http://www.cs.toronto.edu/~cosmin/pngtech/optipng/

Pngcrush je aplikácia príkazového riadku. Ak dávate prednosť drag-pokles GUI, niektoré sú k dispozícii, vrátane tých, ktoré vložiť pngcrush spolu s ďalšími príkazové image kompresory/optimalizáciu:

  • ImageOptim pre Macs, zadarmo, GPLv2 licencie
  • Trimage pre Linux, Windows, Mac, zadarmo, MIT licencie

Apple distribuuje upravenú verziu pngcrush. Tvrdí, že je skutočný pngcrush i nie je informovať užívateľa o zmenách, ako je licencia pngcrush vyžaduje. Vytvára súbory, ktoré nie sú platné PNG datastreams, pretože sa začínajú CgBI bloku namiesto IHDR bloku.

Apple modifikovaný pngcrush je schopný vrátiť na "iPhone optimalizácia" (s výnimkou nutného stratu presnosti v podkladových hodnôt farieb non-nepriehľadných obrazových bodov). Tam sú tiež aplikácie iných výrobcov, ako sú verejné domény, open source pngdefry aplikácie, ktoré možno nájsť na internete. Som povinný poznamenať, že Apple i iPhone sú registrované ochranné známky Apple, Inc.


Odkazy na preklady tejto stránky, alebo staršie verzie tom, sú k dispozícii.


Autorom pngcrush je Glenn Randers-Pehrson, glennrp@users.sf.net


Original in English: http://pmt.sourceforge.net/pngcrush/