Wykorzystując pakiet do obróbki grafiki o nazwie ImageMagick, możemy masowa edytować oraz tworzyć pliki graficzne. Z funkcji ImageMagick można korzystać z wiersza poleceń dlatego bardzo chętnie jest on wykorzystywany w językach skryptowych. Poprzez specjalne API dostępny jest również dla takich języków jak Perl, C, C++, Python oraz PHP.
Przed przystąpieniem do skalowania obrazków, zmienimy ich nazwy na małe literki. Do tego celu posłuży nam polecenie tr, które zostało opisane w artykule Masowa zmiana nazw plików pisanych WIELKIMI literami na małe. Wykorzystując jedną ze znanych nam metod przystępujemy do zmiany nazw plików:
# Change big characters to small for name in *.JPG do mv -f $name `echo $name | tr -d _ | tr '[A-Z]' '[a-z]'` done
Kolejnym krokiem będzie odszukanie plików JPG oraz policzenie ich ilości wykorzystując polecenie find. Do policzenia ilości plików można wykorzystać również polecenie wc.
# Find and count number of image files files=(`find . -maxdepth 1 -iregex ".*\.jpg$" -type f -print | sort -f`)
Znając liczbę plików z jaką będziemy pracować, możemy zapamiętać ich nazwy w tablicy filenames.
# Remember file names into a $filenames
for (( i=0; i < ${#files[@]}; i++ ));
do
filenames[$i]=`basename "${files[$i]}" | sed s/\ /_/g`;
done
Ostatnim krokiem będzie samo skalowanie. Do tego posłuży nam polecenie convert z pakietu ImageMagick. Dodatkowo będziemy wyświetlać sobie postęp prac poleceniem echo.
# Configuration:
size="2048x2048" #Size of images
for (( i=0; i < ${#filenames[@]}; i++ ));
do
echo -e "Resizing ${filenames[$i]}\t\t[`expr $i + 1`/${#filenames[@]}]"
convert -scale $size ${filenames[$i]} min/${filenames[$i]}
done
Skrypt możemy wzbogacić o automatyczne obracanie zdjęć z aparatu lub zmianę nazw plików na datę zrobienia zdjęcia. Więcej na ten temat można przeczytać w artykule Exif, czyli ukryte dane w obrazkach. Wynikiem programu będzie:
paszczak000@muszelka:~/Pulpit/Flickr$ ./scale_image.sh Resizing dsc3508.jpg [1/5] Resizing dsc3512.jpg [2/5] Resizing dsc3554.jpg [3/5] Resizing dsc3555.jpg [4/5] Resizing dsc3586.jpg [5/5]
Pełen skrypt dostępny jest w pliku scale_image.sh.























[…] posiadamy masę plików, którą ciężko się przegląda. Korzystając z Basha oraz pakietu ImageMagick możemy w prosty sposób wygenerować książkę w formacie PDF. ImageMagick można korzystać z […]
[…] posiadamy masę plików, którą ciężko się przegląda. Korzystając z Basha oraz pakietu ImageMagick możemy w prosty sposób wygenerować książkę w formacie PDF. ImageMagick można korzystać z […]
[…] czas temu opisywaliśmy masowe skalowanie obrazków, przy użyciu polecenia convert. Dzisiaj opiszemy polecenie […]