Manipulation des images publiées sur le web

Quelques scripts pour automatiser le traitement des images.

Réduire la taille de l’image

# pkg_add ImageMagick jhead

Créer le script suivant dans ~/bin:

#!/bin/ksh
#
## Script pour convertir les images pour mon blog

conversion() {

filename=$1

# Lire le commentaire de l'en-tête Exif, retirer les espaces et TAB
comment="$(jhead $filename | grep Comment | awk 'BEGIN { FS="[:]"} \
    {print $2}' | sed 's/[   ]//g' )"

echo "Commentaire: $comment"

# Réduire la qualité et la largeur à 720 pixels maximum
if [ -z $(echo $comment | grep r720) ];
then
    convert $filename -resize 720x4000\> $filename.tmp 
    mogrify -quality 80 $filename.tmp
    jpegtran -copy all -progressive "$filename.tmp" > $filename
    jhead -cl "$comment,r720" $filename
    rm "$filename.tmp"
    echo "Fichier converti: $filename"
else
    echo "Fichier déjà converti: $filename"
fi
}

for file in "$@" 
do
    conversion "$file"
done

Ajouter une signature ou watermark

image à signer  -> image signée

Créer le script suivant dans ~/bin:

#!/bin/ksh
#
## Script pour signer des images (watermark)

signature() {

filename=$1

# Lire le commentaire de l'en-tête Exif, retirer les espaces et TAB
comment="$(jhead $filename | grep Comment | awk 'BEGIN { FS="[:]"} \
    {print $2}' | sed 's/[   ]//g' )"

echo "Commentaire: $comment"

# Ajoute une signature au bas de l'image
if [ -z $(echo $comment | grep signed) ];
then
    mv $filename "$filename.tmp"
    convert -background '#00000080' -fill white label:'philstjacques.com' miff:- |\
        composite -gravity southeast -geometry +0+0 \
              -   "$filename.tmp"   $filename
    jhead -cl "$comment,signed" $filename
    rm "$filename.tmp"
    echo "Fichier signé: $filename"
else
    echo "Fichier déjà signé: $filename"
fi
}

for file in "$@" 
do
    signature "$file"
done

Références:

http://www.imagemagick.org/Usage/annotating/ http://www.sentex.net/~mwandel/jhead/

Créer des miniatures

à venir