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 16/07/2014, à 21:28

Zococo

[Résolu]bash imagemagick draw - guillemets

Bonjour,

Je rencontre un problème avec la commande draw d'imagemagick utilisée dans un script. C'est probablement un problème de guillemets mais j'ai beau avoir essayé au moins une dizaine de syntaxes, je n'y parviens pas.

Voici la commande qui fonctionne parfaitement saisie dans le terminal :

user@ubuntu:/$ convert -fill blue -draw "roundRectangle 20,20,262,50,2,2" "fond_cal.png" "fichier_sortie.png"

Et voici la même commande dans un script, qui ne fonctionne pas :

#!/bin/bash
couleur_fond=blue
marge_droite=20
marge_haute=20
x_col=262
y_col=50
fichier_sortie="mon_fichier.png"
convert -fill "$couleur_fond" -draw \"roundRectangle "$marge_droite","$marge_haute","$x_col","$y_col,2,2"\" "fond_cal.png" "$fichier_sortie"
exit 0;

La syntaxe de convert est une parmi les nombreuses que j'ai essayées, avec guillemets,avec apostrophe, avec et sans antislash, dans une variable gobale, entre parenthèses, etc., j'en passe et des meilleures. J'obtiens généralement l'erreur suivante :

convert.im6: impossible d'ouvrir l'image `20,20,262,50,2,2'': Aucun fichier ou dossier de ce type @ error/blob.c/OpenBlob/2638.
convert.im6: pas de délégué pour décoder ce format d'image `20,20,262,50,2,2'' @ error/constitute.c/ReadImage/544.
convert.im6: impossible d'ouvrir l'image `"fond_cal.png"': Aucun fichier ou dossier de ce type @ error/blob.c/OpenBlob/2638.
convert.im6: pas de délégué pour décoder ce format d'image `"fond_cal.png"' @ error/constitute.c/ReadImage/544.
convert.im6: pas d'images définies `"fichier_sortie.png"' @ error/convert.c/ConvertImageCommand/3044.

On voit bien que les paramètres de -draw ne sont pas interprétés, ce qui entraîne les problèmes qui suivent (par ex. fond_cal.png existe évidemment), les différents paramètres sont décalés d'un rang et tout fonctionne à tort et à travers.

Bref, y aurait il sur le forum un ubuntero confirmé qui sache comment parler gentiment à imagemagick dans un script ? Les exemples du site, par exemple http://www.imagemagick.org/Usage/draw/ ne m'ont pas été très utiles.

Merci !

Dernière modification par Zococo (Le 18/07/2014, à 11:12)


Ubuntu 23.04 (64 bits) - Gigabyte B250M-DS3H / Core i5-7600K (Kaby lake) - Microsoft surface Go 3

Hors ligne

#2 Le 17/07/2014, à 04:42

pingouinux

Re : [Résolu]bash imagemagick draw - guillemets

Bonjour,
Ceci devrait fonctionner dans le script

convert -fill "$couleur_fond" -draw "roundRectangle $marge_droite,$marge_haute,$x_col,$y_col,2,2" fond_cal.png "$fichier_sortie"

Hors ligne

#3 Le 17/07/2014, à 06:05

J5012

Re : [Résolu]bash imagemagick draw - guillemets

pas la peine de mettre les variables entre guillemets ...

Hors ligne

#4 Le 17/07/2014, à 06:33

pingouinux

Re : [Résolu]bash imagemagick draw - guillemets

J5012 a écrit :

pas la peine de mettre les variables entre guillemets ...

C'est vrai dans ce cas, mais ça ne mange pas de pain et c'est une bonne habitude à prendre.

Hors ligne

#5 Le 17/07/2014, à 22:15

J5012

Re : [Résolu]bash imagemagick draw - guillemets

oui mais les guillemets, ce n'est pas seulement pour les espaces, dans un certain contexte, ca peut vouloir dire la variable $x au lieu du contenu de $x, ...

Hors ligne

#6 Le 18/07/2014, à 11:12

Zococo

Re : [Résolu]bash imagemagick draw - guillemets

Ça fonctionne !
Mille mercis.
Je pensais avoir essayé cette syntaxe mais j'en ai testé tant que je n'y voyais plus clair.
Il me semblait que la variable $x c'était entre guillemets simples et son contenu entre guillemets doubles.
En tout cas problème résolu.


Ubuntu 23.04 (64 bits) - Gigabyte B250M-DS3H / Core i5-7600K (Kaby lake) - Microsoft surface Go 3

Hors ligne