png crush | |
---|---|
Sorts | Bildoptimerare |
Författare | Glenn Randers Pehrson |
Skrivet i | C |
Operativ system | Programvara för flera plattformar |
senaste versionen | 1.7.12 ( 6.08.2010 ) _ |
Licens | libpng-licens [d] |
Hemsida | pmt.sourceforge.net/pngc... |
pngcrush är ett gratis och öppen källkodsverktyg. Används för att optimera PNG -bildfilter. Ger möjlighet att minska filstorleken utan förlust - detta betyder att "krossade" bilder kommer att ha samma kvalitet som originalbilden.
Huvudsyftet med pngcrush är att minska storleken på en PNG med hjälp av en IDAT-dataström, genom en kombination av komprimeringsmetoder och deltafilter. Men pngcrush kan också användas för andra åtgärder på PNG-bilder, som att ändra djupet på en bild eller ta bort oönskade hjälpblock, lägga till vissa block inklusive gAMA , tRNS , iCCP och ett textblock.
Den huvudsakliga användningen av pngcrush är att minska storleken på IDAT-sektionsdata som ingår i bilden.
Pixeldata i en PNG-fil komprimeras med LZ77-algoritmen (som hittar upprepade sekvenser av byte i källfilen), varefter den komprimeras med Huffman-algoritmen . Denna kombination påminner oss om DEFLATE- algoritmen . Före komprimering appliceras ett säkert deltafilter på pixeldata
Det finns 5 möjliga filtertyper som kan användas separat för varje skanningssteg. I princip finns det flera möjliga sätt att söka efter LZ77-matchningar. Det finns alltså ett stort antal olika kombinationer av hur en bild kan komprimeras. Vilken som kommer att komprimera bättre beror på egenskaperna hos själva bilden [1]
pngcrush komprimerar bilden med flera olika kombinationer och sparar sedan den minsta av de resulterande filerna [2] Eftersom det inte är möjligt att implementera alla möjliga kombinationer, använder pngcrush en del heuristik för att välja en sökväg.
Som enklast kan pngcrush anropas för att skapa en "krossad" fil från en ooptimerad med följande format, med kommandot:
pngcrush imageIn.png imageOut.pngSom standard använder pngcrush bara några få vanliga filkomprimeringsmetoder. Den valfria "-brute"-kompressionsmetoden kan användas för brute force- kompression, som kan använda över 100 olika kompressionsmetoder.
En av funktionerna i pngcrush är möjligheten att ta bort all färgkorrigeringsdata (gamma, vitbalans, ICC-färgprofil, standard RGB-profil) från en PNG-fil med följande kommandon:
pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.pngEftersom de flesta grafikprogram infogar ytterligare färgkorrigeringsdata som normalt inte behövs. Om du raderar kommer originalfilen att minska med 40 %. Pngcrush kan förlustfritt minska bitdjupet i en bild eller tillämpa en färgpalett , om detta skulle resultera i storlekskomprimering.
Alla hjälpblock och text kan tas bort med kommandot:
pngcrush -rem gAMA -rem alla -rem text InputFile.png OutputFile.pngPngcrush kan användas för att färgkoda en bild. Om 10 färger används, men färgpaletten är 256 (8 bitar), kommer pngcrush att kunna konvertera paletten till 4-bitars och trunkera den ner till 10 färger:
pngcrush -bit_depth 4 -plte_len 10 image1.png image2.pngÄven pngcrush kan användas för att ändra färgen. För en bild med sanna färger ändras färgtonen från 2 till 0( -c 0) till svartvitt (gråskala). En sådan bild är betydligt mindre än originalet eftersom, förutom alfakanalen , bara en 8-bitars kanal används per pixel, inte tre. En svartvit bild är också mycket mindre eftersom den inte kräver en färgpalett . För fullfärgsbilder tar du bort alfakanalen om du ändrar färgtypen från 6 till 2.
PNG-bilder innehåller block med information om bilden, såsom upplösning (fysiskt block), datum för senaste ändring (tIME-block) och textmetadata (textblock och dess varianter). Med hjälp av pngcrush kan användaren redigera eller ta bort dessa hjälpblock:
pngcrush -res 96 -rem tid -text b "Programvara" "pngcrush" image1.png image2.pngDetta kommando ändrar upplösningen till 96 dpi , tar bort tidsstämplarna och egenskapen "image creator" till "pngcrush".
Liknande PNG-kompressorer:
Liknande program för JPG: