#!/bin/bash # --------------------------------------------------------------------- # limitations: cf convert pour la conversion en .jpg # # dépend des scripts suivant : # - photo_thumbCheckExist.sh # librairies # - convert # # ameliorations # - auto-orient # --------------------------------------------------------------------- # --------------------------------------------------------------------- # init/config # --------------------------------------------------------------------- # thumnails names export XLname="SYNOPHOTO:THUMB_XL.jpg" export Lname="SYNOPHOTO:THUMB_L.jpg" export Bname="SYNOPHOTO:THUMB_B.jpg" export Mname="SYNOPHOTO:THUMB_M.jpg" export Sname="SYNOPHOTO:THUMB_S.jpg" # thumnails size export XLsize="1280x1280" export Lsize="800x800" export Bsize="640x640" export Msize="320x320" export Ssize="160x160" # fichier temporaire crée par checkThumbExist fileTmpDiff="/tmp/thbExist918diff" # --------------------------------------------------------------------- # coeur du programme # # rem: a ameliorer pour tenir compte de tous les formats image supportés # # limitations: extensions supportés jpg JPG # --------------------------------------------------------------------- # element a convertir fullPathToPic=$@ # normalement cette étape du test sur @eaDir est désormais inutile car la commande find du fichier maitre l'intègre déjà # (this step is not useful as master script with "find" command includes this test) # test @eaDir (on le garde par robustesse au cas où...) isNot_eaDir=`echo $fullPathToPic | grep -v "@eaDir"` if [[ -z $isNot_eaDir ]] then # fichier image non traité car contient @eaDir dans le path echo " " echo "SKIP "$fullPathToPic" : in @eaDir thumbnail sub-folder" else # Recupere le noms et le dossier de l'element picName=`echo $fullPathToPic | awk -F\/ '{print $NF}'` picDir=`echo $fullPathToPic | sed s/"${picName}"//g | sed s/.$//` # vérification que les miniatures n'existe pas déjà photo_thumbCheckExist.sh "${picDir}" "${picName}" # si diff vide alors les miniatures existent deja isNot_thumb=`cat $fileTmpDiff` if [[ -z $isNot_thumb ]] then # fichier non traité car les miniatures existent (thumbnails exist already) echo " " echo "SKIP "$fullPathToPic" : all thumbnails already exist" else echo " " echo "TREATMENT "$fullPathToPic # conversion en cascade (XL -> L -> B -> M -> S) # ---------------------------------------------- # Creation du repertoire s'il n'existe pas (directory creation if not existing) if [[ !(-d "$picDir"/"@eaDir"/"$picName") ]] then mkdir -p "$picDir""/@eaDir/""$picName" # modification of rights to be readable and executable by "others" (like photostation...) chmod 775 "$picDir"/"@eaDir"/"$picName" fi # si le fichier n'existe pas on le crée sinon on ne fait rien # (creation of thumbnail if it doesn't exist) if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$XLname") ]] then convert -size $XLsize "$picDir""/""$picName" -resize $XLsize -auto-orient -flatten "$picDir"/"@eaDir"/"$picName"/"$XLname" echo " -- "$XLname" thumbnail created" fi if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Lname") ]] then convert -size $XLsize "$picDir""/@eaDir/""$picName""/""$XLname" -auto-orient -resize $Lsize "$picDir""/@eaDir/""$picName""/""$Lname" echo " -- "$Lname" thumbnail created" fi if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Bname") ]] then convert -size $Lsize "$picDir""/@eaDir/""$picName""/""$Lname" -auto-orient -resize $Bsize "$picDir""/@eaDir/""$picName""/""$Bname" echo " -- "$Bname" thumbnail created" fi if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Mname") ]] then convert -size $Bsize "$picDir""/@eaDir/""$picName""/""$Bname" -auto-orient -resize $Msize "$picDir""/@eaDir/""$picName""/""$Mname" echo " -- "$Mname" thumbnail created" fi if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Sname") ]] then convert -size $Msize "$picDir""/@eaDir/""$picName""/""$Mname" -auto-orient -resize $Ssize "$picDir""/@eaDir/""$picName""/""$Sname" echo " -- "$Sname" thumbnail created" fi fi fi