• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Solved] Farbe in Graustufen wandeln? (konsole)

A

Anonymous

Gast
Hallo,
gibt es ein Konsoleprogramm was ein Bild (xpm, png) in Graustufen wandeln kann. Wenn möglich in einem Rutsch ein ganzes Verzeichnis mit meiner Iconsammlung. Hab keinen Bock jedes einzelne Icon mit Gimp zu wandeln.

Gruß Holgi...
 

Hermann

Hacker
Hallo Holgi, mit folgendem script:

#!/bin/sh
#
# Dateien in einem Ordner mit 'convert' von 'Farbe' nach 'Graustufen' konvertieren!
#
# mit 'for' alle Dateinamen mit der Endung 'png' in die Variable 'bild' übernehmen.
for bild in *.png
# Anfang der 'for' Schleife.
do
convert "$bild" "${bild%.png}.pgm"
# convert = das Programm convert (ImageMagick)
# "$bild" = der Name der Bild Datei
# "${bild%.png}.pgm" = den Extender .png durch .pgm ersetzen
# Ende der 'for' Schleife
done

*edit* hatte ich vergessen, Transparenz wird dabei schwarz :-(.
Du kannst ja mal man convert tippen vielleicht ist da ja noch was anderes dabei.

Gruß, Hermann
 
OP
A

Anonymous

Gast
Jawohl Hermann,

genau so hab ich mir das vorgestellt. Das einzige was daran noch anders sein muß, ist das der Hintergrund auch Transparent bleiben soll. Der wird leider weiß. Hab mir die Manpage angeschaut und werde dadurch auch nicht schlauer. Ehrlich gesagt, ist das auch der erste Kontakt mit dem Programm 'convert'. Vielleicht haste ja noch ein Tipp für mich, oder jemand anders.

Hab Dank Holgi...
 

counter

Newbie
Hallo,

@Herman: Dein Script funktioniert gut. Habs grad getestet.

@Herman und @ misterhsp
Vielleicht unterstützt das pgm Format keine Transparenz!?
Probiert es mal mit dem GIF Format.
Das kennt Transparenz.
Habe leider keine Transparente Datei| da sonst könnte ich das testen.

Gruß
Counter
 
OP
A

Anonymous

Gast
counter schrieb:
... Probiert es mal mit dem GIF Format ...
Mit GIF ging das leider auch nicht, schade eigentlich.

Aber nach langem studieren der Manpage und reichlich rumgoogeln hab ich einen Lösungsweg gefunden wie man das mit 'convert' machen kann. Allerdings funzt
das nur mit PNG-Bilder. Mit jpg, gif usw. gab es bei mir nur Fehlermeldungen. Laut Google sollte es auch mit anderen Bildformaten gehen.
Code:
convert -colorspace gray input.png output.png
In einem kleinen Script verpackt kann man dann einen ganzes Verzeichnis auf einmal rekursiv in Graustufen umwandeln.
Code:
#!/bin/bash
#
for ICON in `find . -iname '*.png'`
do
	echo "converting picture "$ICON""
	convert -colorspace gray "$ICON" "$ICON"_""
	mv -f "$ICON"_"" "$ICON"
done

Gruß Holgi...
 

Hermann

Hacker
misterhsp schrieb:
...nach langem studieren der Manpage und reichlich rumgoogeln hab ich einen Lösungsweg gefunden wie man das mit 'convert' machen kann. Allerdings funzt das nur mit PNG-Bilder...

Hallo Holgi, gut gegoogelt/gelesen. Hatte dieses Thema schon vergessen, hier eine weitere Idee für ALLE Bilder:

#!/bin/sh
#
# Dateien in einem Ordner mit 'convert' von 'Farbe' nach 'Graustufen' konvertieren!
#
# mit 'for' alle Dateinamen in die Variable 'bild' übernehmen.
for bild in *.*
# Anfang der 'for' Schleife.
do
# Dateiname ergänzen um "-x" und Extender auf .png ändern.
png_bild="${bild%.*}-x.png"
# jetzt alle Dateien in png-Dateien umwandeln, ohne Rücksicht auf Verluste.
convert "$bild" "$png_bild"
# "-x" in der Datei durch "-gray" ersetzen
gray_bild="${png_bild%-x.png}-gray.png"
# und nun in Graustufen
convert -colorspace gray "$png_bild" "$gray_bild"
# convert = das Programm convert (ImagicMagig)
# "$png_bild" = erste umwandlung, png-Bild mit Transparenz
# "$gray_bild" = letzte Umwandlung, Graustufen-Bild mit Transparenz
# Ende der 'for' Schleife
done

Gruß, Hermann
 
Oben