Wpis z mikrobloga

#linuks #kubuntu #ubuntu #imagemagick
Potrzebuję pomocy z wsadowym przetwarzaniem obrazków za pomocą Imagemagick. Potrafię napisać linię poleceń by przetworzyć sobie obrazek z formatu *.png do *.jpg z odpowiednią kompresją. Problem jest tylko taki że takich plików do przetworzenia mam ponad pięćset i nie bardzo mi się uśmiecha klepać z palca wszystkie pięćset poleceń. Próbowałem napisać skrypt robiący to za mnie ale raczej średnio mi to poszło, więc zwracam się z prośbą o pomoc.
Mam katalog z zawartością 001.pg... itd a chcę mieć 001.jpg... Jak to zrobić?
  • 5
@aleksander_z: O widzisz, a ja takiego skryptu nie znalazłem, nawet jak poświęciłem sześć minut na googla.
Trochę poprawiłem, brakuje w skrypcie zamknięcia cudzysłowu - domyślam się że tu chodzi o nazwę pliku jeśli zawierałaby spację. I nie ma w moim systemie komendy/programu 'magic' ale wystarczy to usunąć i zostawić samo 'convert' a skrypt zaczyna działać. Podziękował ślicznie.

@Wiskoler_double: ten oneliner jest ok, pod warunkiem że nie masz w nazwach pliku spacji, wtedy się to wywali. Dlatego do pętli w takich przypadkach lepiej używać "do while" zamiast "for", i chyba lepiej pliki wynikowe wrzucać do podkatalogu np. "JPG"

mkdir -p JPG;
find . -name '*.png' |while read plik;
do
echo "konwertuję plik: $plik";
convert "$plik" "JPG/$(basename "$plik" .png).jpg";
done