2013-03-09 17 views
15

Ich habe einen Ordner mit vielen Bildern aus verschiedenen Typen (PNG, JPG, JPEG, BMP, PDF), und ich möchte sie alle konvertieren in png (zum Beispiel) mit imagemagick.Wie konvertiert man alle Dateien (in verschiedenen Formaten) in einem bestimmten Ordner in einen anderen Dateityp

Gibt es einen einzigen Befehl, der dies ausführen kann? Wenn nicht, was sollte ich stattdessen tun?

Danke.

+0

oder wenn Sie verwenden Python Look dieses : http://stackoverflow.com/questions/2900035/changing-file-extension-in-python –

Antwort

22

Versuchen Sie, den mogrify Befehl:

mogrify -format png *.* 

aber vorsichtig sein. Ohne die Option -format überschreibt mogrify die Originalbilder. Stellen Sie sicher, dass Sie die documentation lesen.

+0

Danke. Ich bekomme folgende Fehlermeldung Massage: C: \ Benutzer \ Tal \ s> MOGRIFY-Format PNG *. * MOGRIFY.EXE: nicht möglich, Moduldatei 'C: \ Programme (x86) \ ImageMagick-6.8 zu öffnen. 3-Q16 \ modules \ coders \ IM_MOD_RL_INI_.dll ': Keine solche Datei oder Verzeichnis @ warning/mo dule.c/GetMagickModulePath/683. mogrify.exe: keine Dekodierung Delegate für dieses Bildformat 'desktop.ini '@ Fehler/Nachteile titute.c/ReadImage/550. (Ist das einfach zu lösen?) –

+3

Das ist, weil 'mogrify' versucht, die Datei' desktop.ini' zu konvertieren, die keine Bilddatei ist. Sie sollten Bilddateien nur an 'mogrify' übergeben. Löschen Sie 'desktop.ini' oder ändern Sie' *. * 'In einen Platzhalter, der nur mit den Bilddateien in Ihrem Verzeichnis übereinstimmt. Sie können den Befehl auch mehrmals für jedes Dateiformat ausführen: 'mogrify -format png * .jpg',' mogrify -format png * .bmp' usw. – nwellnhof

+0

Wunderbar - vielen Dank nwellnhof! –

14

Obwohl mogrify scheint, um den Job zu erledigen, möchte ich Ihnen zeigen, wie dies mit mehreren Befehlen mit convert von ImageMagick getan werden kann.

denke ich mehrere Befehle sind besser, weil die Anzahl der Dateitypen angeblich recht klein ist und Sie können es auf Ihre Bedürfnisse besser anzupassen:

Dieser Befehl:

for file in *.xbm; do convert $file "`basename $file .xbm`.png"; done 

konvertiert alle .xbm Dateien zu .png, während die xbm-Dateien nicht berühren.

Dann können Sie alle bewegen "umgewandelt" -Dateien:

mkdir converted 
for file in *.xbm; do mv $file converted/; done 
1

Sie convert Kommando von ImageMagick Paket verwenden können, beispielsweise

find . -maxdepth 1 \(-iname \*.png -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.bmp -o -iname \*.pdf \) -exec convert -verbose "{}" "DEST_DIR/{}.png" \;

Oder wenn Sie alle Dateien im gleichen Verzeichnis haben, versuchen Sie die folgende einfachere Art und Weise:

convert '*.*' converted_%04d.png 

Ähnliche: How can I scale all images in a folder to the same width?

Verwandte Themen