#1 Le 10/11/2010, à 10:13
- Totor
[Résolu] [ImageMagick] Sollicitation pour création d'un icone
Bonjour,
Ne connaissant rien à la création graphique, je sollicite votre aide pour la création d'un icone.
L'objectif est de faire une "jauge" afin d'indiquer la progression d'un traitement à double niveaux (1 progression unitaire, 1 progression totale). L'icone est donc réactualisé en fonction de la progression.
Dans sa version la plus simple, il s'agirait d'afficher le % de la progression sous forme de texte. Ceci ne me pose pas de problème mais ce n'est pas vraiment "classe" ni originale.
Pour améliorer cet indicateur, je souhaiterai apporter un effet "shadow" comme le 2nd exemple "Soft Shadow" de cette page mais avec les lettres qui se remplissent petit à petit (comme lors du remplissage d'une bouteille d'eau).
Je dois pouvoir générer l'icone dynamiquement dans un script bash (avec ImageMagick) en fonction de la progression de mon traitement. C'est pourquoi, le texte et le taux de remplissage seront dynamiques.
Je souhaite le background de l'icone transparent afin que cela s'intègre au mieux dans l'environnement utilisateur.
Pour la taille: l'icone sera intégré dans la zone de notification. Donc cela dépend de cette zone. Pour ma part, elle a une hauteur de 24pixels mais j'ai une résolution de 1600*1200. Du fait de cette résolution, la taille du texte est à choisir judicieusement car cela devient vite illisible
Donc voilà, merci pour votre aide.
Si vous avez une meilleure idée plus originale de cet indicateur de progression, n'hésitez-pas à m'en faire la proposition.
merci
@+
Dernière modification par Totor (Le 10/11/2010, à 16:28)
-- Lucid Lynx --
Hors ligne
#2 Le 10/11/2010, à 16:27
- Totor
Re : [Résolu] [ImageMagick] Sollicitation pour création d'un icone
A moins que vous ayez une idée plus originale, ne vous attardez pas sur ma demande : j'ai réussi.
#!/bin/bash
trap 'end 1' SIGINT SIGKILL
font="${1:-./Garfield.ttf}"
imageWidth="${2:-320}"
imageHeight="${3:-200}"
strokeWidth="${4:-6}"
strokeColor="${5:-gold}"
initialeColor="${6:-black}"
destinationColor="${7:-red}"
#LimeGreen
file1=.$$_texte1.png
file2=.$$_texte2.png
masque=.$$_masque.png
resultat=.$$_resultat.png
end()
{
rm "${file2}" "${file1}" "${masque}" "${resultat}"
exit $1
}
makeIcon()
{
texte="$1"
pct=$2
convert -size "${imageWidth}x${imageHeight}" -background matte -stroke "${strokeColor}" -strokewidth "${strokeWidth}" -font "${font}" -gravity center -fill "${initialeColor}" Label:"${texte}" "${file1}"
infos=( $(convert "${file1}" -trim info: ))
height=${infos[2]#*x}
top=${infos[3]##*+}
y=$(( (height+top) - pct*height/100 ))
convert -size "${imageWidth}x${imageHeight}" -background matte -stroke "${strokeColor}" -strokewidth "${strokeWidth}" -font "${font}" -gravity center -fill "${destinationColor}" Label:"${texte}" "${file2}"
convert -size "${imageWidth}x${imageHeight}" xc: -draw "rectangle 0,0 ${imageWidth},${y}" "${masque}"
composite "${file2}" "${file1}" "${masque}" "${resultat}"
echo "icon:${resultat}"
echo "tooltip:${texte}"
}
{
for ((x=0;x<=100;x++))
do
makeIcon "${x}%" ${x}
done
makeIcon "OK !" 100
read -s -n1
} | zenity --listen --notification --window-icon=info --text "0 %"
end 0
Dernière modification par Totor (Le 10/11/2010, à 22:07)
-- Lucid Lynx --
Hors ligne
#3 Le 26/11/2010, à 21:00
- Totor
Re : [Résolu] [ImageMagick] Sollicitation pour création d'un icone
Bonsoir,
Je relance le fil pour vous demandez si vous avez une meilleure façon de faire que ceci :
convert -size 320x200 xc:none -stroke snow4 -fill snow2 -draw 'roundrectangle 16,110,304,190 20,40' -fill snow -draw 'roundrectangle 264,110,304,190 20,40' -fill chartreuse3 -draw 'roundrectangle 16,110,289,190 20,40' -fill chartreuse2 -draw 'roundrectangle 249,110,289,190 20,40' -fill none -draw 'roundrectangle 264,110,304,190 20,40' -strokewidth 2 -draw 'roundrectangle 16,110,304,190 20,40' '(' +clone -background snow4 -shadow 80x3+3+3 ')' +swap -background none -layers merge -size 320x100 xc:none -strokewidth 0 -gravity center -font ./Garfield.ttf -pointsize 80 -fill red 'label:95 %' '(' +clone -background firebrick3 -shadow 80x3+3+3 ')' +swap -background none -layers merge image.png
pour donner cela :
Dernière modification par Totor (Le 26/11/2010, à 21:00)
-- Lucid Lynx --
Hors ligne