png összetörni | |
---|---|
Típusú | Képoptimalizáló |
Szerző | Glenn Randers Pehrson |
Beírva | C |
Operációs rendszer | Többplatformos szoftver |
legújabb verzió | 1.7.12 ( 2010.08.6 ) _ |
Engedély | libpng licenc [d] |
Weboldal | pmt.sourceforge.net/pngc… |
A pngcrush egy ingyenes és nyílt forráskódú segédprogram. A PNG képszűrők optimalizálására szolgál . Lehetővé teszi a fájl méretének veszteség nélküli csökkentését - ez azt jelenti, hogy a "zúzott" képek az eredeti kép minőségével rendelkeznek.
A pngcrush fő célja a PNG méretének csökkentése IDAT adatfolyam segítségével, tömörítési módszerek és deltaszűrők kombinációjával. A pngcrush azonban más PNG-képekkel kapcsolatos műveletekre is használható, például a kép mélységének módosítására vagy a nem kívánt kiegészítő blokkok eltávolítására, bizonyos blokkok hozzáadására, beleértve a gAMA , tRNS , iCCP és egy szövegblokkot.
A pngcrush fő célja a képen szereplő IDAT szakasz adatok méretének csökkentése.
A PNG-fájlban lévő pixeladatokat az LZ77 algoritmussal tömörítik (amely ismétlődő bájtsorozatokat talál a forrásfájlban), majd a Huffman-algoritmussal tömöríti azokat . Ez a kombináció a DEFLATE algoritmusra emlékeztet bennünket . A tömörítés előtt egy biztonságos deltaszűrőt alkalmaznak a pixeladatokra
5 lehetséges szűrőtípus létezik, amelyek külön-külön használhatók minden egyes szkennelési lépéshez. Elvileg több módja is van az LZ77 egyezések keresésének. Így egy kép tömörítésének számos különféle kombinációja létezik. Hogy melyik tömöríti jobban, az magának a képnek a tulajdonságaitól függ [1]
A pngcrush több különböző kombinációval tömöríti a képet, majd az eredményül kapott fájlok közül a legkisebbet menti [2] Mivel nem lehetséges az összes lehetséges kombinációt megvalósítani, a pngcrush bizonyos heurisztikát használ az elérési út kiválasztásához.
A legegyszerűbb esetben a pngcrush meghívható egy "zúzott" fájl létrehozására egy nem optimalizált fájlból a következő formátum használatával, a következő paranccsal:
pngcrush imageIn.png imageOut.pngAlapértelmezés szerint a pngcrush csak néhány általános fájltömörítési módszert használ. Az opcionális "-brute" tömörítési módszer használható nyers erővel történő tömörítéshez, amely több mint 100 különböző tömörítési módszert használhat.
A pngcrush egyik jellemzője az összes színkorrekciós adat (gamma, fehéregyensúly, ICC színprofil, szabványos RGB-profil) eltávolítása egy PNG-fájlból a következő parancsokkal:
pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.pngMivel a legtöbb grafikus szoftver további színkorrekciós adatokat szúr be, amelyekre általában nincs szükség. A törlés 40%-kal csökkenti az eredeti fájl méretét. A Pngcrush veszteség nélkül csökkentheti a kép bitmélységét, vagy színpalettát alkalmazhat , ha ez mérettömörítést eredményez.
Minden segédblokk és szöveg eltávolítható a következő paranccsal:
pngcrush -rem gAMA -rem alla -rem szöveg InputFile.png OutputFile.pngA Pngcrush használható egy kép színkódolására. Ha 10 színt használunk, de a színpaletta 256 (8 bites), a pngcrush képes lesz a palettát 4 bitesre konvertálni, és 10 színre lecsonkítani:
pngcrush -bit_depth 4 -plte_len 10 image1.png image2.pngA pngcrush is használható a szín megváltoztatására. Valódi színű kép esetén a színárnyalat 2-ről 0-ra ( -c 0) történő módosítása fekete-fehérre (szürkeárnyalatos) módosul. Egy ilyen kép lényegesen kisebb, mint az eredeti, mert az Alpha csatornán kívül csak egy 8 bites csatorna van pixelenként, nem három. A fekete-fehér kép is sokkal kisebb, mert nem igényel színpalettát . Színes képek esetén a színtípus 6-ról 2-re történő módosítása eltávolítja az alfa-csatornát.
A PNG-képek a képre vonatkozó információkat tartalmazó blokkokat tartalmaznak, mint például a felbontás (fizikai blokk), az utolsó módosítás dátuma (tIME blokk) és a szöveges metaadatok (szövegblokk és változatai). A pngcrush használatával a felhasználó szerkesztheti vagy törölheti ezeket a segédblokkokat:
pngcrush -res 96 -rem time -text b "Szoftver" "pngcrush" image1.png image2.pngEz a parancs 96 dpi - re módosítja a felbontást , eltávolítva az időbélyegeket, az "image creator" tulajdonságot pedig "pngcrush"-ra.
Hasonló PNG kompresszorok:
Hasonló programok JPG-hez: