Pngcrush

Original: https://pmt.sourceforge.io/pngcrush/

 

SourceForge

PNG Now

 


 

[LETÖLTÉS]   [VÁLTOZÁSI NAPLÓ]

A Pngcrush a PNG (Portable Network Graphics) fájlok optimalizálója. Futtatható egy parancssorból egy MSDOS ablakban, vagy egy UNIX vagy LINUX parancssorból.

Fő célja a PNG IDAT adatfolyam méretének csökkentése különféle tömörítési szintek és PNG szűrési módszerek kipróbálásával. Arra is használható, hogy eltávolítsák a nem kívánt kiegészítő darabokat, vagy bizonyos darabokat adjunk hozzá, beleértve a gAMA, tRNS, iCCP, és szöveges darabokat.

 

Úgy gondolják, hogy a Pngcrush, amikor statikusan kapcsolódik a mellékelt zlib kódhoz, immunis a zlib-1.1.3 “double-freedupla-mentes” hibára, mivel alapértelmezés szerint észlel és elutasít minden “dupla-mentes” kísérletet. Csak egy “Dekompressziós hiba” üzenetet generál, és elutasítja a fájlt.

Pngcrush nyílt forráskódú, bárki használhatja, módosíthatja és terjesztheti díj fizetése nélkül. A pngcrush.c fájlba beágyazott licenc egyenértékű, de nem azonos azzal, amely a png.h libpng fájlban található libpng licenchez tartozik.

A pngcrush jelenlegi verziója itt található.

Itt található a pngcrush forráskódja.

A pngcrush forráskódja megtalálható a “pmt” git lerakatban is. A git.code.sf.net/p/pmt/code vagy github.com/glennrp/libpng” webhelyről történő klónozással érheti el. Jelenleg a pngcrush forrás a „pngcrush” ágban található.

A bináris futtatható fájlok itt találhatók. A Pngcrush libpng-t és zlib-t használ, amelyek mindkettő ebbe a pngcrush-forrás eloszlásba tartoznak. Ezek kissé módosultak:

  • libpng’s pngconf.h módosítva “#include pngcrush.h” amelyet használnak
    • a könyvtár nem használt részeinek “#define out”
    • #define PNG_SETJMP_NOT_SUPPORTED
    • #define PNG_ABORT()
    • az IDAT pufferméret nagy értékre állítása, és
  • zlib módosítva a TOO_FAR makrót 32767-re állítja a deflate.c
  • A nagy felbontású PNGCRUSH_TIMERS szerepel a pngread.c és pngwutil.c fájlokban.
  • pngwutil.c módosítva, hogy elkerüljék az ADLER32 ellenőrző összegek kiértékelését a próba kimenetek írása közben.

Ha tetszik, akkor csak a pngcrush.c fájlt fordíthatja a pngcrush forrás disztribúciójából, és futtathatja azt a libpng és zlib állományokkal, amelyek megtalálhatók a PNG webhelyén, a www.libpng.org/pub/png/. Ha ezt megteszi,

  • Az iTXt darab nem lesz támogatott, ha a libpng verziója nem támogatja. A Libpng alapértelmezés szerint elkezdi az iTXt csomag támogatását az 1.4.0 verzióval.
  • pngcrush érzékenyek lesznek a 2004. augusztusában rögzített különféle túlcsordulási körülményekre, ha egy nem korábban kiadott libpng verziót használnak, mint a verzió korábbi 1.2.7/1.0.17.
  • pngcrush sebezhető lesz a zlib-1.1.3 kettős ingyenes hiba miatt, ha a pngcrush-t a zlib-1.1.3-hoz kapcsolja, és a libpng olyan verzióját, mint például az 1.0.x, amelyen nincs engedélyezve a PNG_USER_MEM_SUPPORTED.
  • TOO_FAR 4096 lesz a 32767 helyett deflate.c,ami kissé nagyobb fájlokat és kissé gyorsabb végrehajtást eredményez.
  • A végrehajtás egy kicsit lassabb lesz, mert az ADLER32 ellenőrző összeget mindig kiértékelik.
  • Néhány nagy felbontású, időzített részletes eredményt nem jelentenek.
  • ezenkívül nem lesz képes hibás PNG fájlokat elolvasni a “Túl sok IDAT” felirat mellett.

Az előre elkészített bináris fájlok Windowshoz (az MSDOS ablakban futnak) itt vannak 

A pngcrush fejlesztésének villája létezik, a Cosmin Truta által készített, kissé eltérő funkciókészlettel és keresési területtel. Lásd: http://www.cs.toronto.edu/~cosmin/pngtech/optipng/

A Pngcrush egy parancssori alkalmazás. Ha inkább a draggity-droppity grafikus felhasználói felületet részesíti előnyben, számos rendelkezésre áll, köztük azok, amelyek beágyazják a pngcrush-t, más parancssori képkompresszorokkal/optimalizálókkal együtt:

  • ImageOptim Macs-ekhez ingyenes GPLv2 licenc
  • Trimage Linux, Windows, Mac-ekhez ingyenes MIT licenc

Az Apple forgalmazza a pngcrush módosított változatát. Azt állítja, hogy az igazi pngcrush, és nem tájékoztatja a felhasználót a pngcrush licenc által megkövetelt változásokról. Olyan fájlokat hoz létre, amelyek nem érvényes PNG adatáramok, mivel a CgBI darabbal kezdődnek, nem pedig az IHDR darabon.

Az Apple által módosított pngcrush képes visszaállítani az “iPhone optimalizációkat” (kivéve a nem átlátszatlan képpontok alapjául szolgáló színértékek elkerülhetetlen pontosságának elvesztését). Vannak olyan harmadik féltől származó alkalmazások, mint például a közkincs, a nyílt forrású pngdefry alkalmazás, amely megtalálható a hálózaton. Meg kell jegyeznem, hogy az Apple és az iPhone az Apple, Inc. bejegyzett védjegyei.


A pngcrush szerzője Glenn Randers-Pehrson, [email protected]

About The Author

admin

Comments are closed.