Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[Solved] Farbe in Graustufen wandeln? (konsole)

Alles rund um das Thema Multimedia unter Linux

Moderator: Moderatoren

Antworten
Gast

[Solved] Farbe in Graustufen wandeln? (konsole)

Beitrag von 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...
Zuletzt geändert von Gast am 6. Jan 2005, 11:23, insgesamt 1-mal geändert.
Benutzeravatar
Hermann
Hacker
Hacker
Beiträge: 442
Registriert: 11. Mai 2004, 18:55
Wohnort: Duisburg
Kontaktdaten:

Re: Farbe in Graustufen wandeln? (konsole)

Beitrag von Hermann »

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
Gast

Beitrag von 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...
Benutzeravatar
counter
Newbie
Newbie
Beiträge: 31
Registriert: 6. Jan 2004, 22:50

Beitrag von counter »

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
Bild 9.1 Pro

P4 1,7GHz, 512MB Ram, GeForce 4 Ti 4200 128MB TV-Out
Suse Linux 10 Download

Benutzer der Suchfunktion... :-)
Gast

Beitrag von Gast »

counter hat geschrieben: ... 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: Alles auswählen

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: Alles auswählen

#!/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...
Benutzeravatar
Hermann
Hacker
Hacker
Beiträge: 442
Registriert: 11. Mai 2004, 18:55
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Hermann »

misterhsp hat geschrieben:...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
Antworten