2013-03-09 22 views
15

Mam folder z wieloma obrazami z różnych typów (png, jpg, jpeg, bmp, pdf), a ja chciałbym przekonwertować je wszystkie do png (na przykład) używając imagemagick.Jak przekonwertować wszystkie pliki (w różnych formatach) w danym folderze na inny typ pliku

Czy istnieje jedno polecenie, które może to wykonać? Jeśli nie, co powinienem zrobić?

Dzięki.

+0

lub jeśli używasz Pythona wygląd to : http://stackoverflow.com/questions/2900035/changing-file-extension-in-python –

Odpowiedz

22

Spróbuj polecenia mogrify:

mogrify -format png *.* 

Ale bądź ostrożny. Bez opcji -format, mogrify zastępuje oryginalne obrazy. Przeczytaj artykuł documentation.

+0

Dzięki. Otrzymuję następujący komunikat o błędzie: C: \ Users \ Tal \ s> mogrify -format png *. * mogrify.exe: nie można otworzyć pliku modułu 'C: \ Program Files (x86) \ ImageMagick-6.8. 3-Q16 \ moduły \ programy kodujące \ IM_MOD_RL_INI_.dll ": Brak takiego pliku lub katalogu @ ostrzeżenie/mo dule.c/GetMagickModulePath/683. mogrify.exe: nie ma delegata dekodowania dla tego formatu obrazu 'desktop.ini '@ error/cons titute.c/ReadImage/550. (Czy to jest proste do rozwiązania?) –

+3

To dlatego, że 'mogrify' próbuje przekonwertować plik' desktop.ini', który nie jest plikiem obrazu. Powinieneś przekazać pliki graficzne tylko do "mogrify". Usuń "desktop.ini" lub zmień '*. *' Na symbol wieloznaczny, który pasuje tylko do plików obrazów w twoim katalogu. Możesz także uruchomić polecenie kilka razy dla każdego formatu pliku: 'mogrify -format png * .jpg',' mogrify -format png * .bmp', itd. – nwellnhof

+0

Cudownie - dziękuję bardzo nwellnhof! –

14

Mimo, że wydaje się, że praca jest wykonywana przez mogrify, chciałbym pokazać, jak można to zrobić za pomocą wielu poleceń z convert z ImageMagick.

myślę wielokrotne polecenia są lepsze, ponieważ liczba typów plików jest podobno dość małe i można lepiej dopasować go do swoich potrzeb:

polecenia:

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

skonwertuje wszystkie .xbm plików do .png, nie dotykając plików xbm.

Następnie można przenieść wszystkie "przekształcone" pliki:

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

Można użyć polecenia convert z pakietu ImageMagick, na przykład

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

Lub jeśli masz wszystkie pliki znajdujące się w tym samym katalogu, spróbuj następujące prostszy sposób:

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

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

Powiązane problemy