Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/04/2007, à 11:36

john5168

Créer un filigrane sur vos photo

[Mis à jour le 17/04 pour le bug cité #4]
[Mis à jour le 19/04 : V2 : taille de texte en proportion à l'image]
[Mis à jour le 25/04 : V3 : Avec barre de progression]
[Mis à jour le 17/06 : V6 : Avec texte vertical, compression et redimentionnement]

Si vous voulez appliquer un texte en filigrane sur un lot de photo on peut utilisé un script nautilus.

Le script utilise zenity et imagemagick

sudo apt-get install zenity imagemagick

Enregistrer le code suivent dans un éditeur de texte :

#!/bin/bash
## auteur : john5168
## dépendance : zenity ; imagemagick
## version : 6

# Change le séparateur standard (espace) pour RETURN
IFS='
' 
taille=14      # 0 = grand <=> infini = petit
position=30    # 0 = long du bord <=> infini = proche du bord
contour=400    # 0 = gros contour de texte <=> infini = faible contour de texte
interligne=15  # 0 = grand interligne <=> infini = faible interligne pour texte vertical

folder_ok="false" 
# Sélection des photo dans nautilus
folder="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
# Variable de la barre de progression
NB_PHOTOS=$(find $folder -iname '*.jpg' -o -iname '*.jpeg' | wc -l)
COMPTEUR=0 
# Séléction d'action
RET=`zenity --list --checklist --width=450 --height=250 \
		--title "Action à définir pour les photos" \
		--column="" --column "Liste des actions" \
		TRUE	"Filigrane horizontal" \
		FALSE	"Filigrane vertical à gauche" \
		FALSE	"Filigrane vertical à droit" \
		FALSE	"Redimentionnement réduction de la taille des photos" \
		FALSE	"Compression jpg"`
if [ "$?" != "1" ]
then	
	if echo "$RET" | grep "Filigrane horizontal"; then
		Horiz=`zenity --entry --text="Texte en filigrane horizontal" --entry-text="Texte horizontal"`|| exit 1
	fi
	if echo "$RET" | grep "Filigrane vertical à gauche"; then
		VertG=`zenity --entry --text="Texte en filigrane vertical à gauche
Utilisé le caractère \ pour les espaces et
un espace entre chaque caractères" --entry-text="T e x t e \ G a u c h e"`|| exit 1
	fi
	if echo "$RET" | grep "Filigrane vertical à droit"; then
		VertD=`zenity --entry --text="Texte en filigrane vertical à droite
Utilisé le caractère \ pour les espaces et
un espace entre chaque caractères" --entry-text="T e x t e \ D r o i t e"`|| exit 1			
	fi
	if echo "$RET" | grep "Redimentionnement réduction de la taille des photos"; then
		Red=`zenity --entry --text="Facteur de réduction des photos en %" --entry-text="50%"`|| exit 1
	fi
	if echo "$RET" | grep "Compression jpg"; then
		Comp=`zenity --entry --text="Facteur de compression des photos en %
100% = pas de compression" --entry-text="60"`|| exit 1
	fi 
# Sélection du dossier ou sont copier les photos
ficsrc=`zenity --file-selection --directory "Choix du repertoire "`
if [ "$?" != "1" ]
then
      echo "repertoire choisi " $ficsrc

    # Vérification de l'éxistance du dossier de destination
    if [ ! -x $ficsrc/${folder##*/} ]
    then
	folder_ok="true" 
    else
	zenity --question --title "Attention" --text "Le fichier que vous avez sélectionné : \n ${folder##*/} \n Existe déjà dans : \n $ficsrc \n \n Êtes-vous sur de vouloir l'écraser ?"
	if [ "$?" != "1" ]
	then
		folder_ok="true" 
	else
       		echo "Le fichier sélectionné existe déjà"
	fi	
    fi
    # Ok pour copie avec écrasement
    if [ "$folder_ok" = "true" ]
    then
	
	# copie du dossier source
	(cp -r $folder $ficsrc

    # Calcule du nombre de caractère dans les textes verticals
    nbVG=$(echo "scale=9; (`echo $VertG | wc -c` / 2)" | bc)
    nbVD=$(echo "scale=9; (`echo $VertD | wc -c` / 2)" | bc)
    # Boucle traitement des photos
    IFS=$'\n' && for i in $(find $ficsrc/${folder##*/} -iname '*.jpg' -o -iname '*.jpeg');do
    IFS=$' \n\t'
      # Détection de la hauteur et largeur
      l=`identify -format "%w" "$i"`
      h=`identify -format "%h" "$i"`
      # Calcul de la taille du texte en fonction de l'oriantation et le taille de l'immage 
      if [ "$l" -lt "$h" ]
      then
        tl=$(echo "scale=9; ($l / $taille)" | bc)
        pos=$(echo "scale=9; ($l / $position)" | bc)
        ct=$(echo "scale=9; ($l / $contour)" | bc)
	int=$(echo "scale=9; ($l / $interligne)" | bc)
      else 
        tl=$(echo "scale=9; ($h / $taille)" | bc)
        pos=$(echo "scale=9; ($h / $position)" | bc)
        ct=$(echo "scale=9; ($h / $contour)" | bc)
	int=$(echo "scale=9; ($h / $interligne)" | bc)
      fi

	if echo "$RET" | grep "Filigrane horizontal"; then
		mogrify -gravity south -font Bookman-DemiItalic -pointsize $tl \
		-fill '#000000b6' -stroke '#eeeeee50' -strokewidth $ct \
		-annotate +0+$pos "$Horiz" "$i"
	fi
	if echo "$RET" | grep "Filigrane vertical à gauche"; then	
		cent=$(echo "scale=9; (($h - ($nbVG * $tl)) / 2)" | bc)	
		mogrify -gravity northwest -font Bookman-DemiItalic \
		-pointsize $tl -fill '#000000b6' -stroke '#eeeeee50' -strokewidth $ct \
		`y=$cent;for x in $VertG; do echo -annotate +$pos+$y $x; y=$(echo "scale=9; ($y + $int)" | bc);done` "$i"
	fi
	if echo "$RET" | grep "Filigrane vertical à droit"; then
		cent=$(echo "scale=9; (($h - ($nbVD * $tl)) / 2)" | bc)
		mogrify -gravity northeast -font Bookman-DemiItalic \
		-pointsize $tl -fill '#000000b6' -stroke '#eeeeee50' -strokewidth $ct \
		`y=$cent;for x in $VertD; do echo -annotate +$pos+$y $x; y=$(echo "scale=9; ($y + $int)" | bc);done` "$i"
	fi
	if echo "$RET" | grep "Redimentionnement réduction de la taille des photos"; then
		# Reduction de la taille de la photo 
		# 50% = 1/2 ; 25% = 1/4 de la taille d'origine		
		mogrify -resize $Red "$i"
	fi
	if echo "$RET" | grep "Compression jpg"; then
		# Niveau de compression : 0 (qualité d’image la plus mauvaise et la plus compressée)
		# à 100 (meilleure qualité mais compression moins efficace)
		mogrify -compress JPEG -quality $Comp "$i"
	fi      

      # faire le calcul du pourcentage, puis envoyer le résultat dans le tube.
      COMPTEUR=$((COMPTEUR + 100))
      echo $((COMPTEUR / NB_PHOTOS)) 
    done ) | zenity --progress --auto-close || exit 1
    fi
else 
     echo "pas de repertoire choisi"
fi
else
     echo "Pas de choix de traitement de photo"
fi
      ## gravity = southeast (bas à droite) ; south (bas centré) ; southwest (bas à gauche)
      ## NorthWest, North, NorthEast, West, Center, East, SouthWest, South, ou SouthEast
      ## fill = couleur du texte 
      ##   en rba noir = 000000 et opaque =00 invisible = ee
      ##          blanc = eeeeee
      ## stroke = couleur du contour du texte
      ##   en rba noir = 000000 et opaque =00 invisible = ee
      ##          blanc = eeeeee
      ## font = police du texte
      ## annotate position +x+y et contenu du texte

sauvez sous ~/.gnome2/nautilus-scripts/filigrane

lancez la commande suivante pour rendre le script exécutable :

chmod +x ~/.gnome2/nautilus-scripts/filigrane

Mise à jour
J'ai modifier le script pour pouvoir l'utilisé dans les chemins qui contient des espaces.
Donc les postes #2 et #3 non plus d'intérêt, merci a biginoz pour son lien. J'ai repris une partie du code qui est dans sont lien.
Le texte du filigrane est maintenant proportionnel à la taille de la photo [V2].
Une barre de progression s'affiche pour savoir ou en ai le travail du script [V3]
Une liste de choix apparais au lancement du script pour le filigrane en horizontal, vertical, compression et redimentionnement des photos [V6]

Usage
Dans Nautilus vous sectionnez le dossier contenant les photos au format "*.jpg" ou "*.jpeg", clique droit puis >Script>filigrane
Cela vous demande un dossier de destination puis crée un dossier identique au dossier que vous avez sélectionné et copie toute les photos du dossier sélectionné dans le dossier choisis en appliquant les actions que vous aurais choisi dedans.
Il est possible de modifié la position, la couleur, la taille, etc... du texte en modifiant les paramètres comme indiqué dans les commentaires du script.

ATTENTION
Pour que cela fonctionne il faux sélectionné un seul dossier à la fois.

Dernière modification par john5168 (Le 17/06/2007, à 16:53)


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#2 Le 15/04/2007, à 19:15

biginoz

Re : Créer un filigrane sur vos photo

voila la reponse est dans le forum dans le forum.
regarde là oùparle eclipse
http://generation-debian.tuxfamily.org/ … c.php?t=72

Hors ligne

#3 Le 15/04/2007, à 19:28

john5168

Re : Créer un filigrane sur vos photo

dans le lien que tu donne biginoz je voie pas de solution au problème. Je ne veut pas supprimer les espaces de tout mes dossiers, mais faire fonctionner le script même si il y a des espace.

Pour eclipse je voie pas le rapport c'est un logiciel pour développer en java. Moi je veut juste faire un petit script en bach.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#4 Le 15/04/2007, à 20:24

szdavid

Re : Créer un filigrane sur vos photo

a priori, moi, ça fait rien...

(à moins que je n'ai pas compris ce qu'était le filigrane ; ce n'est pas un texte sur la photo ?)
le dossier est bien copié mais a priori pas de filigrane

Hors ligne

#5 Le 15/04/2007, à 20:37

john5168

Re : Créer un filigrane sur vos photo

si le dossier et copier tu a un texte a peine visible qui c'est mis en bas a droite de chaque photos au forma .jpg
Quel est la taille de tes photos d'origine ?


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#6 Le 15/04/2007, à 20:59

szdavid

Re : Créer un filigrane sur vos photo

elles font
Largeur : 2048 pixels
Hauteur : 1536 pixels

Hors ligne

#7 Le 16/04/2007, à 08:40

john5168

Re : Créer un filigrane sur vos photo

je ne comprend pas si le dossier est copier le reste doit fonctionner. Monplus gros problème et le copie du dossier source.
Ton format de photos et bien jpg ou jpeg ?

dans le script a cette ligne :
mogrify -gravity southeast -font Bookman-DemiItalic -pointsize 48 -fill '#000000ec' -stroke '#000000e9' -strokewidth 3 -draw "text 40,40 'Filigrane'" $i

Modifie là pour :
mogrify -gravity southeast -font Bookman-DemiItalic -pointsize 48 -fill '#00000080' -stroke '#00000040' -strokewidth 3 -draw "text 40,40 'Filigrane'" $i

Le texte devras être plus visible.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#8 Le 16/04/2007, à 08:59

john5168

Re : Créer un filigrane sur vos photo

szdavid à tu installé ImageMagick sur ton PC ?

sudo apt-get install zenity imagemagick


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#9 Le 16/04/2007, à 09:11

szdavid

Re : Créer un filigrane sur vos photo

oui, les dépendances sont toutes là (j'ai bien vérifié)

j'essaierai ta modification ce soir

A++

Hors ligne

#10 Le 16/04/2007, à 09:36

cep

Re : Créer un filigrane sur vos photo

Par exemple aussi :
convert  -fill white -pointsize 32 -draw 'text 10,50 "mon_texte_à_afficher"' image.jpg image_filigran.jpg

Voir
http://www.imagemagick.org/script/convert.php
http://www.imagemagick.org/script/command-line-options.php#draw
http://www-128.ibm.com/developerworks/linux/library/l-graf/

Hors ligne

#11 Le 16/04/2007, à 10:29

john5168

Re : Créer un filigrane sur vos photo

merci cep,
je connais aussi convert mais le résultât que je veut est une copie du dossier sources et un filigrane sur les photos cibles. Dans le script au dessus j'ai mis en commentaire tout les paramètre que l'on peut modifier en fonction du résultât voulut pour le filigrane.
L'utilisation de imagemagick est bonne je pense, là ou je suis pas bon c'est dans l'écriture du script. Il faut dire que c'est la première foi que je m'aventure dans la programmation et c'est pas simple pour moi.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#12 Le 16/04/2007, à 11:27

john5168

Re : Créer un filigrane sur vos photo

szdavid j'ai mis a jours le script dans le premier poste a voir.
Mais modifie surtout l'opacité du texte comme dit en #7.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#13 Le 17/04/2007, à 11:44

john5168

Re : Créer un filigrane sur vos photo

Alors effectivement szdavid il y a un bug dans le script.
Chez moi il fonctionne très bien dans toute les cas, mais chez mon oncle rien a faire impossible de rentré dans la boucle quelque soit la photo.
Il doit y avoir un problème dans la condition de la boucle mais je ne comprend pas ou.

Si il y a une personne qui connais le bash et qui veut bien m'aidé.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#14 Le 19/04/2007, à 09:20

john5168

Re : Créer un filigrane sur vos photo

J'ai modifier mon script [V2] à la demande de madrippeur.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#15 Le 19/04/2007, à 09:48

madrippeur

Re : Créer un filigrane sur vos photo

RHO LALA qu'est ce que je suis content !
Je te remercie beaucoup d'avoir eu la gentilesse de modifier ton script juste par ce que je le demande ! (bon c'est vrai que c'est super utile, mais bon tu n'étais pas obligé)

Un gros merci a toi et trés bon travail ! (je teste tout de suite je suis heureux !)

Hors ligne

#16 Le 19/04/2007, à 09:57

madrippeur

Re : Créer un filigrane sur vos photo

Je n'édite pas mon poste volontairement wink Je préfére dire sur un poste à part :

Trés bon boulot, aucun probléme avec le script le fonctionnement est parfait quelle que soit la taille des images, c'est un beau travail d'automatisation sans probléme !
En plus de cela je trouve que tu as du gout car le filigrane est trés bien comme ça (légérement transparent à bordures blanches).

Je dis félicitation et merci beaucoup !

Dernière modification par madrippeur (Le 19/04/2007, à 09:57)

Hors ligne

#17 Le 19/04/2007, à 11:38

john5168

Re : Créer un filigrane sur vos photo

De rien madrippeur c'est vrais que c'est mieux comme ça.


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#18 Le 21/04/2007, à 01:58

szdavid

Re : Créer un filigrane sur vos photo

Salut, j'avais pas eu le temps de m'en occuper jusqu'à présent mais voilà, ça fonctionne impecc smile

Bravo et merci ; bye

Hors ligne

#19 Le 17/06/2007, à 17:00

john5168

Re : Créer un filigrane sur vos photo

Mise a jour de scritp [V6] avec une liste de choix :
   Filigrane horizontal
   Filigrane vertical à gauche
   Filigrane vertical à droit
   Redimentionnement réduction de la taille des photos
   Compression jpg

Avec pour chaque choix la possibilité de choisir dans une boite de dialogue le texte a apporter ou le taux de compression, ect...


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#20 Le 29/06/2007, à 07:33

i M@N

Re : Créer un filigrane sur vos photo

Hello.

Merci, j'aime beaucoup ... et la commande de cep aussi elle est pas mal. smile

J'ai juste modifié :

#folder="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
folder=`pwd`

histoire de placer le script dans /usr/local/bin/ et je peux le lancer dans le répertoire courant en console.

# copie du dossier source
    #(cp -r $folder $ficsrc
    (mkdir -p $ficsrc
    cp -f $folder/*.jpg $ficsrc

parce que le cp -r $folder $ficsrc copiait aussi ce qui n'était pas du .jpg dans le nouveau répertoire $fichsrc

# Boucle traitement des photos
#    IFS=$'\n' && for i in $(find $ficsrc/${folder##*/} -iname '*.jpg' -o -iname '*.jpeg');do
    IFS=$'\n' && for i in $(ls -R $ficsrc/*.jpg);do

et ça pour traiter seulement les .jpg

Bon je suis pas un as du coding bash (loin de là) donc p'tet que mes modifications sont pas aussi bonnes que ça (on doit pouvoir faire mieux) mais ça fonctionne et je te remercie pour ton script grâce auquel j'apprends quelques trucs de plus sur le coding bash et la manière de manipuler les fichiers. wink

@+...

Dernière modification par i M@N (Le 29/06/2007, à 08:18)


1 x Intel(R) Core i7 2600K CPU 3.4GHz Debian sid = roxX !
1 x MSi Wind U100 Debian sid = roxX !!
Read The F***in' Manual or die tryin' !
webmaster @ http://www.rastavibes.net reggae shop

Hors ligne

#21 Le 29/06/2007, à 14:38

i M@N

Re : Créer un filigrane sur vos photo

Reuh ...

Bon j'ai encore modifié ton script pour y passer le format d'image à traiter.
Je précise que ton script modifié ainsi c'est pas un nautilus-script mais un script à mettre dans /usr/local/bin/ et à lancer en console dans le répertoire des images à traiter :

iman@ubuntu:~$ cd /chemin/vers/images/
iman@ubuntu:~/chemin/vers/images/$ script.sh jpg

par exemple.

Donc vala ce que ça donne :

#!/bin/bash
## auteur : john5168
## dépendance : zenity ; imagemagick
## version : 6

if [ -z "$1" ]
then
  echo "Usage: `basename $0` [extension]"
  exit
fi

if [ -n "$1" ]
then

# Change le séparateur standard (espace) pour RETURN
IFS='
' 
taille=14      # 0 = grand <=> infini = petit
position=30    # 0 = long du bord <=> infini = proche du bord
contour=400    # 0 = gros contour de texte <=> infini = faible contour de texte
interligne=15  # 0 = grand interligne <=> infini = faible interligne pour texte vertical

folder_ok="false" 
# Sélection des photo dans nautilus
#folder="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
folder=`pwd`
# Variable de la barre de progression
NB_PHOTOS=$(ls -R $folder/*.$1 | wc -l)
COMPTEUR=0 
# Séléction d'action
RET=`zenity --list --checklist --width=450 --height=250 \
        --title "Action à définir pour les photos" \
        --column="" --column "Liste des actions" \
        TRUE    "Filigrane horizontal" \
        FALSE    "Filigrane vertical à gauche" \
        FALSE    "Filigrane vertical à droit" \
        FALSE    "Redimentionnement réduction de la taille des photos" \
        FALSE    "Compression jpg"`
if [ "$?" != "1" ]
then    
    if echo "$RET" | grep "Filigrane horizontal"; then
        Horiz=`zenity --entry --text="Texte en filigrane horizontal" --entry-text="Texte horizontal"`|| exit 1
    fi
    if echo "$RET" | grep "Filigrane vertical à gauche"; then
        VertG=`zenity --entry --text="Texte en filigrane vertical à gauche
Utilisé le caractère \ pour les espaces et
un espace entre chaque caractères" --entry-text="T e x t e \ G a u c h e"`|| exit 1
    fi
    if echo "$RET" | grep "Filigrane vertical à droit"; then
        VertD=`zenity --entry --text="Texte en filigrane vertical à droite
Utilisé le caractère \ pour les espaces et
un espace entre chaque caractères" --entry-text="T e x t e \ D r o i t e"`|| exit 1            
    fi
    if echo "$RET" | grep "Redimentionnement réduction de la taille des photos"; then
        Red=`zenity --entry --text="Facteur de réduction des photos en %" --entry-text="50%"`|| exit 1
    fi
    if echo "$RET" | grep "Compression jpg"; then
        Comp=`zenity --entry --text="Facteur de compression des photos en %
100% = pas de compression" --entry-text="60"`|| exit 1
    fi 
# Sélection du dossier ou sont copier les photos
ficsrc=`zenity --file-selection --directory "Choix du repertoire "`
if [ "$?" != "1" ]
then
      echo "repertoire choisi " $ficsrc

    # Vérification de l'éxistance du dossier de destination
    if [ ! -x $ficsrc/${folder##*/} ]
    then
    folder_ok="true" 
    else
    zenity --question --title "Attention" --text "Le fichier que vous avez sélectionné : \n ${folder##*/} \n Existe déjà dans : \n $ficsrc \n \n Êtes-vous sur de vouloir l'écraser ?"
    if [ "$?" != "1" ]
    then
        folder_ok="true" 
    else
               echo "Le fichier sélectionné existe déjà"
    fi    
    fi
    # Ok pour copie avec écrasement
    if [ "$folder_ok" = "true" ]
    then
    
    # copie du dossier source
    #(cp -r $folder $ficsrc
    (mkdir -p $ficsrc
    cp -f $folder/*.$1 $ficsrc

    # Calcule du nombre de caractère dans les textes verticals
    nbVG=$(echo "scale=9; (`echo $VertG | wc -c` / 2)" | bc)
    nbVD=$(echo "scale=9; (`echo $VertD | wc -c` / 2)" | bc)

    # Boucle traitement des photos
#    IFS=$'\n' && for i in $(find $ficsrc/${folder##*/} -iname '*.jpg' -o -iname '*.jpeg');do
    IFS=$'\n' && for i in $(ls -R $ficsrc/*.$1);do
    IFS=$' \n\t'

      # Détection de la hauteur et largeur
      l=`identify -format "%w" "$i"`
      h=`identify -format "%h" "$i"`
      # Calcul de la taille du texte en fonction de l'oriantation et le taille de l'immage 
      if [ "$l" -lt "$h" ]
      then
        tl=$(echo "scale=9; ($l / $taille)" | bc)
        pos=$(echo "scale=9; ($l / $position)" | bc)
        ct=$(echo "scale=9; ($l / $contour)" | bc)
    int=$(echo "scale=9; ($l / $interligne)" | bc)
      else 
        tl=$(echo "scale=9; ($h / $taille)" | bc)
        pos=$(echo "scale=9; ($h / $position)" | bc)
        ct=$(echo "scale=9; ($h / $contour)" | bc)
    int=$(echo "scale=9; ($h / $interligne)" | bc)
      fi

    if echo "$RET" | grep "Filigrane horizontal"; then
        mogrify -gravity south -font Bookman-DemiItalic -pointsize $tl \
        -fill '#000000b6' -stroke '#eeeeee50' -strokewidth $ct \
        -annotate +0+$pos "$Horiz" "$i"
    fi
    if echo "$RET" | grep "Filigrane vertical à gauche"; then    
        cent=$(echo "scale=9; (($h - ($nbVG * $tl)) / 2)" | bc)    
        mogrify -gravity northwest -font Bookman-DemiItalic \
        -pointsize $tl -fill '#000000b6' -stroke '#eeeeee50' -strokewidth $ct \
        `y=$cent;for x in $VertG; do echo -annotate +$pos+$y $x; y=$(echo "scale=9; ($y + $int)" | bc);done` "$i"
    fi
    if echo "$RET" | grep "Filigrane vertical à droit"; then
        cent=$(echo "scale=9; (($h - ($nbVD * $tl)) / 2)" | bc)
        mogrify -gravity northeast -font Bookman-DemiItalic \
        -pointsize $tl -fill '#000000b6' -stroke '#eeeeee50' -strokewidth $ct \
        `y=$cent;for x in $VertD; do echo -annotate +$pos+$y $x; y=$(echo "scale=9; ($y + $int)" | bc);done` "$i"
    fi
    if echo "$RET" | grep "Redimentionnement réduction de la taille des photos"; then
        # Reduction de la taille de la photo 
        # 50% = 1/2 ; 25% = 1/4 de la taille d'origine        
        mogrify -resize $Red "$i"
    fi
    if echo "$RET" | grep "Compression jpg"; then
        # Niveau de compression : 0 (qualité d’image la plus mauvaise et la plus compressée)
        # à 100 (meilleure qualité mais compression moins efficace)
        mogrify -compress JPEG -quality $Comp "$i"
    fi      

      # faire le calcul du pourcentage, puis envoyer le résultat dans le tube.
      COMPTEUR=$((COMPTEUR + 100))
      echo $((COMPTEUR / NB_PHOTOS)) 
    done ) | zenity --progress --auto-close || exit 1
    fi
else 
     echo "pas de repertoire choisi"
fi
else
     echo "Pas de choix de traitement de photo"
fi

fi
      ## gravity = southeast (bas à droite) ; south (bas centré) ; southwest (bas à gauche)
      ## NorthWest, North, NorthEast, West, Center, East, SouthWest, South, ou SouthEast
      ## fill = couleur du texte 
      ##   en rba noir = 000000 et opaque =00 invisible = ee
      ##          blanc = eeeeee
      ## stroke = couleur du contour du texte
      ##   en rba noir = 000000 et opaque =00 invisible = ee
      ##          blanc = eeeeee
      ## font = police du texte
      ## annotate position +x+y et contenu du texte

@+...


1 x Intel(R) Core i7 2600K CPU 3.4GHz Debian sid = roxX !
1 x MSi Wind U100 Debian sid = roxX !!
Read The F***in' Manual or die tryin' !
webmaster @ http://www.rastavibes.net reggae shop

Hors ligne

#22 Le 29/06/2007, à 18:15

john5168

Re : Créer un filigrane sur vos photo

Salut i M@N je voix que tu est interssé par le traitement par lot des photos.

Tu veut travaillez quel type de formas de photo ?
Si tu a modifié ainsi c'est pour pouvoir travaillez sur d'autre format car de base imagemagick en accepte beaucoup je crois.

Pour simplifier l'usage tu préférerez pas un script nautilus, dans ce cas soit on prend d'entrée tous les formats imaginable dans la boucle de traitement de photos soit on affiche une fenêtre de choix d'extension au démarrage du script quand panse tu ?


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#23 Le 29/06/2007, à 18:53

i M@N

Re : Créer un filigrane sur vos photo

Hello.

john5168 a écrit :

Salut i M@N je voix que tu est interssé par le traitement par lot des photos.

Je suis tombé sur ce topic ce matin et j'ai trouvé ça très intéressant en effet. smile
Comme chui un p'tit curieux je recherche les messages du même auteur et au détour d'une question sur bash je tombe sur un autre script de traitement d'images par lot pour faire du noir & blanc que j'ai modifié de la même manière. wink

john5168 a écrit :

Tu veut travaillez quel type de formas de photo ?
Si tu a modifié ainsi c'est pour pouvoir travaillez sur d'autre format car de base imagemagick en accepte beaucoup je crois.

.jpg, .gif, .png déjà si ils sont supportés par imagick (à vérifier donc, je commence juste à me rendre compte des possibilités de ce bout de code big_smile).

john5168 a écrit :

Pour simplifier l'usage tu préférerez pas un script nautilus, dans ce cas soit on prend d'entrée tous les formats imaginable dans la boucle de traitement de photos soit on affiche une fenêtre de choix d'extension au démarrage du script quand panse tu ?

Pour ce qui me concerne je préfère en console, mais ça change pas grand chose à ton script puisque il suffit de modifier la variable $folder.
Ensuite pour les formats je préfère le laisser flexible (c'est à dire qu'avec le moins de code il fasse le plus de formats) en lui passant directement le format qui m'intéresse en paramètre (quitte à coder un format en dur par défaut mais je trouve que le Usage: script [extension] qui s'affiche lorsque qu'aucun format n'est spécifié suffit pour l'insant), mais on peut très bien imaginer le listing des fichiers du répertoire, puis récupérer les extensions image présentes et donner le choix à l'utilisateur ...

J'ai trouvé tes scripts franchement cools (surtout celui qui fait du noir & blanc, j'ai cherché à faire ça comme un fou y'a 2 mois et j'ai rien trouvé !) après je les ai juste adaptés à mon usage avec mes minuscules compétences en bash (je pense pas que j'aurais réussi à pondre un truc pareil oÔ). Ce sont le genre de scripts qui font la puissance de Linux, modifier des images par lot en ligne de commande en un temps record : ça existe pas chez window $, si ?

Tu pourrais développer davantage ces 2 scripts peut-être, voire n'en faire qu'un seul des deux avec un choix dès le début.

Déjà je pense chercher à modifier le format de sortie, là j'ai réussi à lui passer le format à traiter en entrée, j'aimerais faire pareil pour le format de sortie : script.sh jpg png ... et laisser le format de sortie identique à celui d'entrée si le second paramètre n'est pas spécifié.
On peut aussi imaginer plus de dialogues / fonctionnalités (taille des images en sortie par exemple) ...

Mais une chose dont je suis sûr c'est que tu tiens un bon truc là ... continue surtout et encore merci. wink

@+...


1 x Intel(R) Core i7 2600K CPU 3.4GHz Debian sid = roxX !
1 x MSi Wind U100 Debian sid = roxX !!
Read The F***in' Manual or die tryin' !
webmaster @ http://www.rastavibes.net reggae shop

Hors ligne

#24 Le 30/06/2007, à 15:05

john5168

Re : Créer un filigrane sur vos photo

ok merci i M@N tu sais moi aussi je suis un vrais débutant en bash les doc sur le net et se forum font des miracle.

Pour l'extension de sortie il faut je pense utilisé convert au lieux de mogrify. Avec convert tu spécifie le nom du fichier de sortie.

Une bonne doc sur imagmagick : http://softlibre.gloobe.org/doku.php?id=imagemagick:options

A+


Les associations du logiciel libre :
http://www.april.org/ ; http://www.aful.org/
Boutique informatique à encourager
Je suis client satisfais de Novatux

Hors ligne

#25 Le 10/09/2008, à 13:19

soupaloignon

Re : Créer un filigrane sur vos photo

Bonjour,

Je remonte ce fil. Je suis en train d'utiliser ton script, et il y a quelques trucs qu'il serait peut être intéressant de modifier... enfin, si tu le juges utile wink

Tu es toujours là ? big_smile


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne