Pngcrush

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 11 juli 2020; kontroller kräver 2 redigeringar .
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.

Grundläggande funktioner

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.png

Som 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.

Minska filstorleken genom att ta bort färgdata

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.png

Eftersom 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.png

Ändra bilden

Pngcrush 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.

Manipulationer med metadata och block

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.png

Detta kommando ändrar upplösningen till 96 dpi , tar bort tidsstämplarna och egenskapen "image creator" till "pngcrush".

Se även

Liknande PNG-kompressorer:

Liknande program för JPG:

Anteckningar

  1. Cosmin Truta. En guide till PNG-optimering (inte tillgänglig länk) (10 maj 2008). Hämtad 31 juli 2010. Arkiverad från originalet 1 juli 2012. 
  2. Whedon, David man pngcrush (nedlänk) . Hämtad 31 juli 2010. Arkiverad från originalet 1 juli 2012. 

Länkar