Preparare massivamente una directory piena di foto per la stampa

Preparare tutte le foto di una directory per la stampa, con l’orientamente e le dimensioni corrette.
Necessario imagemagick

#!/bin/bash

DIRECTORY=$1
DIMENSIONE_W=$(( 6 * 300 ))
DIMENSIONE_H=$(( 4 * 300 ))


function rotate
{
        image=$1
        echo "Rotating $image"
        size=`identify -verbose info: ${image} | grep Geometry | grep -E "([0-9]+)" -o `
        size_w=`echo $size | cut -f1 -d" "`
        size_h=`echo $size | cut -f2 -d" "`

        if [[ $size_w -lt $size_h ]]
        then
                convert $image -rotate 90 $image
        fi
}


function resize
{
        image=$1
        echo "Resizing $image"
        convert $image -scale ${DIMENSIONE_W}x${DIMENSIONE_H} -noise -3 $image
}

function main
{
        cd $DIRECTORY
        for file in `ls -1 *.jpg`
        do
                echo "-------------------------------"
                echo "$file"
                rotate $file
                resize $file
        done
}

main $@
Contrassegnato da tag ,

2 thoughts on “Preparare massivamente una directory piena di foto per la stampa

  1. Matteo ha detto:

    Come ti comporti se l’EXIF dell’immagine dice che è rotata e il verbose di identify ti dice che la dimensione più larga è quella orizzontale e quindi non la ruota ma la ridimensiona applicando il ridimensionamento come BxA invece che AxB?

    Assumento A e B in questo modo
    convert $nome -rotate AxB $nome_2

    Io ci sto impazzendo dietro 😦

  2. Matteo ha detto:

    Come non detto, risolto così:

    convert $nome1 -auto-orient -resize AxB $nome2

Lascia un commento