Chi ha un sito sa bene che caricare le immagini è sempre un mezzo dramma.
Occorre ridimensionare le immagini perchè le attuali macchine fotografiche o i cellulari e i tablet fanno foto grandi come lenzuoli e con pesi (in MB) che non sono sempre comodi da uploadare (e da visualizzare sul sito).
Poi bisogna rinominare i file in modo da gestirli meglio… ma se i file sono molti diventa una scocciatura. Si possono usare programmi per il “rename” massivo, ma non sono sempre pratici.
Poi è carino aggiungere un watermark. E non sempre i programmi che usiamo per rinominare i file in modo massivo hanno questa funzionalità.
Per gestire le foto del mio sito usavo questa strategia:
Poi cercando in internet una soluzione migliore (e che magari mi facesse smacchinare un po’) ho trovato ImageMagick e tutti i suoi comandi per realizzare uno script da eseguire. Di seguito trovate il codice dello script perfettamente funzionante e con i commenti delle principali funzioni.
echo "******************************************"
echo "* Script per ridimensionare, rinominare *"
echo "* e aggiungere un watermark alle foto *"
echo "* in modo massivo. *"
echo "* Andrea Rustichelli - Dicembre 2019 *"
echo "* www.andrea.rustichelli.name *"
echo "******************************************"
echo "Inserisci il nome per i nuovi files..."
read file_name
echo "Ok, procedo a rinominare i file in: " $file_name
count=0
#scorre tutti i file .jpg presenti nella cartella dello script
for each in *.jpg
do
echo "Inizio elaborazione file "$each"..."
#incrementa il contatore da utilizzare come suffisso del nome del file
count=`expr $count + 1`
echo $count
#il contatore viene convertito su 3 cifre in modo da poter ordinare fino a 999 immagini con lo stesso nome
count3d=$(printf "%03d" $count)
#viene composto il nome del file di output
file_out="$file_name"_"$count3d".jpg
#questo comando di ImageMagick converte il file in modo che la dimensione massima del lato più lungo
#sia impostato a 1024 pixel... il lato più corto viene ridimensinato di conseguenza per mantenere le
#proporzioni dell'immagine
convert -resize 1024x1024\> "$each" "$file_out"
#questo comando di ImageMagick serve per creare il watermark con la scritta "andrea.rustichelli.name"
#nalla parte bassa dell'immagine ridimensionata
convert "$file_out" -pointsize 35 -fill white -undercolor '#00000080' -gravity South -annotate +0+5 'andrea.rustichelli.name' "$file_out"
#il file originale viene spostato nella sottocartella chiamata "original_file", mentre il
#file di output viene spostato nella nella sottocartella chiamata "thumb"
mv "$each" ./original_file
mv "$file_out" ./thumb
done
echo "Elaborazione terminata!"
exit