pngcrush

Post Reply
Message
Author
peterm
Posts: 287
Joined: 16. Sep 2000 15:35

pngcrush

#1 Post by peterm »

Hi Leute!

Ich speichere gerne, wenn ich durch`s Web surfe, alle möglichen Bilder ab, hauptsächlich JPEG`s und GIF`s.
Die GIF`s wandle ich wegen der besseren Kompression und dem "Burn all GIF`s" Prinzip ( <a href="http://burnallgifs.org/" target="_blank"><!--auto-->http://burnallgifs.org/</a><!--auto--> )
in mit dem Befehl "gif2png -O $foo" in PNG`s um.

Es gibt ein Programm namens <!--http--><a href="http://pmt.sourceforge.net/pngcrush/" target="_blank">pngcrush</a><!--url--> , mit dem man die PNG`s weiter schrumpfen lassen kann. Da die Verbesserung nur ein paar Prozent geringerer Größe bringt (man kann mit der Option -brute das Programm per brutforce die Beste von 118 Kompressionen wählen lassen), scheint es eigentlich wenig nützlich. Wenn ein PNG-Bild allerdings online gestellt werden soll, oder man - wie in meinem Fall - sehr viele PNG`s hat, die man z.B. auf ein externes Medium packen will, können ein paar KB`s pro Bild schon etwas ausmachen.

Jetzt das Problem: Das Programm pngcrush hat einen Nachteil; es lässt sich nicht wie z.B. <u>strip</u> ohne Parameter auf Dateien ausführen, sondern man muss ein input_bild und ein output_bild angeben. Ein typischer pngcrush-Befehl könnte so aussehen:
pngcrush -brute input.png output.png

Das bedeutet, dass ich pngcrush nicht schnell mal kurz auf 50 Dateien loslassen kann, sondern jede Datei einzeln selektieren muss, was ziemlich lästig und unökonomisch wäre.

Hat jemand eine Idee, z.B. als Shell-Script, parat, mit der man diesen "Bug" umgehen kann, etwa durch temporäre Umbenennung und wieder-zurück-Benennung?

Mir geht es nicht nur um das Problem selbst, sondern auch um das Prinzip, wie ich solche Probleme angehen und lösen kann; und das kann man unter anderem dadurch, dass man von anderen lernt <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Vielen Dank für jede Hilfe!

cu

thorsten
Posts: 72
Joined: 23. Jan 2002 13:54

Re: pngcrush

#2 Post by thorsten »

Wenn ich dich richtig verstehe, hast du bereits Bilder im PNG Format und willst diese nochmals im PNG Format komprimieren.
Falls es das Tool "pngcrush" zulässt, und der Input Name gleich dem Output name sein darf, probier mal folgendes:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
find /PATH/TO/PICS -name '*.png' -exec pngcrush -brute {} {} ;<!--no-->
</font><hr></pre></blockquote>

Um dieses Script immer im aktuellen Verzeichnis auszuführen musst du /PATH/TO/PICS durch einen . (Punkt) ersetzen.

Gruß

Thorsten

thorsten
Posts: 72
Joined: 23. Jan 2002 13:54

Re: pngcrush

#3 Post by thorsten »

Da ist ein klein wenig etwas schief gegangen:
der Befehl muss heißen:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
find /PATH/TO/PICS -name '*.png' -exec pngcrush -brute {} {} \<!--no-->;
</font><hr></pre></blockquote>

Gruß

Thorsten

peterm
Posts: 287
Joined: 16. Sep 2000 15:35

Re: pngcrush

#4 Post by peterm »

@Thorsten:

> Falls es das Tool "pngcrush" zulaesst

Leider nein. Dieses pngcrush scheint ueberhaupt noch sehr unausgereift zu sein: kein ordentliches configure-Skript,
statisch gelinkte libpng...

Trotzdem vielen Dank fuer deine Antwort! Ich werd` mir den Syntax merken, um spaeter bei anderen Problemen das gleiche Schema zu verwenden.

cu

peterm
Posts: 287
Joined: 16. Sep 2000 15:35

Re: pngcrush

#5 Post by peterm »

Und wieder einmal bewährt sich das altbekannte RTFM - Prinzip <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Ich habe herausgefunden, dass man mit dem Parameter "-d" die optimierten PNG`s
in ein Verzeichnis sichern kann. Trotzdem ist es für mich unverständlich, dass es keine -overwrite
- Funktion oder ähnliches gibt.

Trotzdem vielen Dank für deine Bemühungen!

cu

Post Reply