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 […]