Created
July 30, 2024 17:49
-
-
Save pigreco/e3c3aa5254783a6153d38d77586875b7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Definisci la proporzione del ritaglio (larghezza:altezza) | |
CROP_RATIO="2:1" | |
# Definisci le directory di input e output | |
INPUT_DIR="../rename_cropping" | |
OUTPUT_DIR="./cropping" | |
# Crea la directory di output se non esiste | |
mkdir -p "$OUTPUT_DIR" | |
echo "Inizio elaborazione. Directory di input: $INPUT_DIR, Directory di output: $OUTPUT_DIR" | |
# Funzione per calcolare il massimo comun divisore (MCD) | |
gcd() { | |
local a=$1 | |
local b=$2 | |
while [ $b -ne 0 ]; do | |
local t=$b | |
b=$((a % b)) | |
a=$t | |
done | |
echo $a | |
} | |
# Estrai i valori del rapporto | |
RATIO_WIDTH=$(echo $CROP_RATIO | cut -d':' -f1) | |
RATIO_HEIGHT=$(echo $CROP_RATIO | cut -d':' -f2) | |
# Itera su tutti i file JPG nella directory di input | |
for file in "$INPUT_DIR"/*.jpg | |
do | |
if [ -f "$file" ]; then | |
filename=$(basename "$file") | |
output_file="$OUTPUT_DIR/$filename" | |
echo "Elaborazione del file: $file" | |
# Ottieni le dimensioni dell'immagine | |
dimensions=$(identify -format "%wx%h" "$file") | |
width=$(echo $dimensions | cut -d'x' -f1) | |
height=$(echo $dimensions | cut -d'x' -f2) | |
echo "Dimensioni originali: $width x $height" | |
# Calcola le dimensioni del crop | |
if [ $((width * RATIO_HEIGHT)) -lt $((height * RATIO_WIDTH)) ]; then | |
# L'immagine è più alta del rapporto desiderato | |
crop_width=$width | |
crop_height=$((width * RATIO_HEIGHT / RATIO_WIDTH)) | |
else | |
# L'immagine è più larga del rapporto desiderato o nel rapporto esatto | |
crop_height=$height | |
crop_width=$((height * RATIO_WIDTH / RATIO_HEIGHT)) | |
fi | |
# Calcola le coordinate per il ritaglio dal basso a sinistra | |
left=0 | |
top=$((height - crop_height)) | |
echo "Dimensioni del crop: $crop_width x $crop_height" | |
echo "Coordinate di ritaglio: ${left}x${top}+${crop_width}x${crop_height}" | |
# Esegui il ritaglio | |
convert "$file" -crop "${crop_width}x${crop_height}+${left}+${top}" "$output_file" | |
# Verifica se il file di output esiste e ha una dimensione maggiore di zero | |
if [ -s "$output_file" ]; then | |
echo "Immagine elaborata con successo: $output_file" | |
else | |
echo "ERRORE: Impossibile creare o l'immagine di output è vuota: $output_file" | |
fi | |
else | |
echo "AVVISO: File non trovato o non accessibile: $file" | |
fi | |
done | |
echo "Elaborazione completata. Le immagini ritagliate sono in $OUTPUT_DIR" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment