|
|
Ce document est disponible en: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
par Katja Socher L´auteur: Katja est l'éditrice allemande de LinuxFocus. Elle aime Tux, le film et la photo, et la mer. Sa page personnelle se trouve ici. Sommaire:
|
Résumé:
Dans cet article nous nous intéressons à quelques formules que les sorciers d'ImageMagick peuvent utiliser, associées à une collection d'outils graphiques comme ingrédients de base et à la ligne de commande comme baguette magique.
Jadis, les sorciers prenaient leurs ingrédients de base, les mélangeaient ensemble dans un grand chaudron,
agitaient leur baguette magique, prononçaient quelques formules à voix basse... et tout à coup quelqu'un était changé en grenouille.
À notre époque moderne, les sorciers sont, comme n'importe qui d'autre dans la société, hautement spécialisés et leurs grimoires
ne contiennent que quelques formules utiles pour des tâches très spécifiques.
Ainsi ImageMagick n'est pas un livre de formules à usage général. Sous bien des points de vue il ne peut concurrencer The Gimp ou d'autres
logiciels d'infographie, mais il possède quelques caractéristiques spécialisées qui sont très pratiques.
Son vrai point fort repose dans sa capacité à automatiser bon nombre de ses processus quand on travaille avec lui en ligne de commande.
Mais au préalable nous allons divulguer quelques formules afin de vous permettre de jeter un rapide coup d'oeil sur les ingrédients de base :
ou qu'est-ce que ImageMagick ?
ImageMagick est une collection d'outils graphiques pour travailler avec des images. Les outils sont l'affichage, l'importation, l'animation, le montage, la conversion, "mogrify", l'identification et la combinaison.convert -geometry 60x80 image.gif out.gifredimensionne l'image image.gif à une largeur de 60 sur une hauteur de 80 et écrit l'image qui en résulte dans un fichier nommé out.gif.
#!/bin/sh for f in $* ;do convert -geometry 80x80 $f t_$f echo "<a href=\"$f\"><img src=\"t_$f\" width=\"80\" height=\"80\"></a>" done # end of script(Saisissez ces lignes avec l'éditeur de votre choix (vi, emacs, nedit, kedit...) et enregistrez le script sous le nom mksmallimage dans votre répertoire personnel. Ensuite tapez en ligne de commande
chmod 755 /home/katja/mksmallimage(utilisez le nom de votre répertoire home au lieu de katja) Vous pouvez alors utiliser le script en saisissant
/home/votre_nom/mksmallimage xxx.jpg *.gifCela convertira tous les fichiers gif plus le fichier xxx.jpg.
display "vid:*.jpg"Ceci générera un répertoire visuel de toutes vos images jpg dans le répertoire courant. Ou :
display "vid:grenouille/*"générera un répertoire visuel de toutes vos images dans votre répertoire grenouille.
<a href="file.gif"><img src="t_file.gif" width="60" height="80"></a>Ici, le fichier original est file.gif et la vignette est t_file.gif.
for f in $* ;do convert -geometry 80x80 $f t_$f echo "<a href=\"$f\"><img src=\"t_$f\" width=\"80\" height=\"80\">" doneLe script ci-dessus fera le tour de toutes les images comme spécifié dans la ligne de commande, puis générera les vignettes et enfin écrira le code html à l'écran. Il ne reste plus qu'à copier ce code et à le coller dans notre page web.
convert image.gif image.jpgConvert utilise l'extension du nom de fichier pour savoir quel format il doit utiliser.
for f in $* ;do if echo "$f" | grep -i "jpg$" > /dev/null ; then gif=`echo "$f" | sed 's/jpg$/gif/i'` echo "converting $f to $gif ..." convert 80x80 $f $gif else echo echo "$f is not a jpg file, ignored" fi doneImageMagick reconnaît aussi un grand nombre d'autres formats.
combine -gravity SouthEast -compose Over img.jpg logo.gif stamp_img.jpgL'option "gravity SouthEast" met le logo.gif dans le coin inférieur droit. "compose Over" indique que nous remplacerons l'image par le logo aux endroits où ils se superposent.
identify image.jpg results in image.jpg 340x254 DirectClass 13939b JPEG 0.1u 0:01Qu'est-ce que notre sorcier peut bien faire de cela ? Et bien, pour concevoir de bonnes pages web qui afficheront les images alors que la page est encore en cours de chargement, vous devez spécifier les dimensions exactes de toutes vos images. Le code html ressemblera par exemple à ceci :
<img src="image.jpg" width="340" height="254" alt="[image d'exemple]">Si nos images ont des tailles différentes et que nous ignorons la hauteur et largeur exactes de chacune d'entre elles, il est possible d'appeler "identify" à notre aide. Écrivons un script shell qui lira la sortie de "identify" et ensuite imprimera cette ligne. Les dimensions de l'image sont le deuxième paramètre de la chaîne de sortie du programme identify. Pour obtenir ce paramètre, utilisons la commande awk :
identify image.jpg | awk '{print $2}' results in 340x254Il faut maintenant séparer largeur et hauteur. On peut le faire avec :
echo 340x254 | sed 's/[^0-9]/ /g' | awk '{print $1}'qui donnera la largeur. La hauteur sera obtenue avec :
echo 340x254 | sed 's/[^0-9]/ /g' | awk '{print $2}'Ne fixez pas trop votre attention sur les commandes shell exactes. Si vous ne les comprenez pas complètement, prenez-les telles qu'on vous les donne. Il y aura un article à propos de la programmation shell dans un prochain numéro de LinuxFocus dans lequel nous expliquerons tous ces tours. Le script shell final ressemble à ce qui suit :
file=$1 geometry=`identify $file | awk '{print $2}'` # geometry can be 563x144+0+0 or 75x98 # we need to get rid of the plus (+) and the x characters: width=`echo $geometry | sed 's/[^0-9]/ /g' | awk '{print $1}'` height=`echo $geometry | sed 's/[^0-9]/ /g' | awk '{print $2}'` echo "<img src=\"$file\" width=\"$width\" height=\"$height\">"Pour obtenir le script shell complet nous ajoutons encore du texte d'aide et la vérification d'erreur. Voici le script shell final, nommé imgsrcline :
En jouant avec ImageMagick j'ai trouvé parfois des contradictions entre la documentation et les fonctionnalités réelles. Quelques-unes des caractéristiques ne sont pas très stables. Si vous vous en tenez aux choses expliquées ci-dessus vous vous rendrez compte que c'est vraiment pratique. Les fonctions évoquées dans cet article marchent vraiment. J'ai utilisé ImageMagick-4.2.9 , ImageMagick-5.2.9 et ImageMagick-5.3.0 et ce que vous avez appris ici fonctionne quelle que soit la version utilisée.
J'espère que vous avez maintenant une petite idée de ce qu'il est possible de faire avec ImageMagick et que vous
utiliserez ces scripts ou même commencerez à créer vos propres formules.
Amusez-vous bien !
|
Site Web maintenu par l´équipe d´édition LinuxFocus
© Katja Socher, FDL LinuxFocus.org Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus |
Translation information:
|
2001-07-28, generated by lfparser version 2.17