Problème: ImageMagick convert ne parvient pas à rogner l'image. On dirait qu'il ne reconnaît pas le type d'image?
Ce que j'ai essayé:
J'ai cherché en ligne et j'ai vu plusieurs problèmes similaires, mais pas le mien. J'ai essayé leurs solutions, y compris
Je travaille sur Mac OSX El Capitan et tout le reste dans le terminal fonctionne bien. ImageMagick était déjà installé.
Quand je cours:
$ convert /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487.png 805X972+34+94 /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487-cropped.png
Je reçois:
convert: impossible d'ouvrir l'image `805X972 + 34 + 94 ': Aucun fichier ou répertoire de ce type @ error/blob.c/OpenBlob/2702.
convert: aucun délégué de décodage pour ce format d'image '' @ error/constit.c/ReadImage/504.
aucun délégué de décodage pour ce format d'image '' @ error/constit.c/ReadImage/504
Dans les autres posts sur ce sujet, les gens se font
convertir aucun délégué de décodage pour ce format d'image «PNG»
Ou similaire (sauf avec leur type d'image ou nom de fichier et type d'image)
Cependant, le mien ne dit rien sur le type de fichier image ...
Je n'ai pas essayé de désinstaller ImageMagick, puis de l'installer manuellement à partir de sources, car je ne suis pas très sûr de le faire ... (cette solution a été montrée: https://stackoverflow.com/a/34633084/5398660 )
Est-ce que quelqu'un sait ce qui pourrait se passer?
De plus, quelqu'un peut-il m'aider à interpréter la partie @ error/constit.c/ReadImage/504? Je regarde le code pour constitue.c mais je ne suis pas sûr de pouvoir obtenir des informations utiles pour résoudre mon problème (je ne connais qu'un peu de C)
Je vous remercie!
brew remove imagemagick //to delete current version
brew install imagemagick --build-from-source
corrigé pour moi sur mac
Très bien, en jouant, j'ai trouvé la solution et je la poste ici pour d'autres personnes susceptibles de se heurter à ce problème:
Apparemment, ce n'est pas/n'est plus/n'est pas pour moi le moyen de recadrer une image en utilisant ImageMagick convert. Même si cet usage est montré ici cela n’a pas fonctionné pour moi avec El Capitan (c’est peut-être le système d’exploitation?).
À la place d'utiliser
convert img.png 805X972 + 34 + 94 img-crop.png
La commande correcte, qui fonctionne est:
convert image.png -crop 805X972 + 34 + 94 image-crop.png
C'est, la commande va:
convertir image.ext -crop hauteur Xlargeur + positionX + positionY * imagecropped.ext
Plus peut être trouvé ici . D'après la description de cette page ImageMagick, j'étais confus à propos de l'exemple dans lequel ils ont converti convert rose: -crop mais vous pouvez simplement l'utiliser de la manière que j'ai mentionnée ci-dessus et cela fonctionne bien.
Jeter dans mes deux cents comme j'ai moi aussi lutté avec ce problème pour les derniers jours. Je n'ai eu aucun problème à exécuter les commandes ImageMagick sur mon ordinateur local, mais le message d'erreur mentionné par OP a été généré lorsque j'ai exécuté la commande à partir d'un serveur Tomcat exécuté sur Azure Cloud.
Je pourrais identifier la cause en lançant la commande suivante:
convert -list format
Sur ma machine locale, la liste de tous les formats pris en charge est assez longue, alors que sur Kudu (outil CLI Azure), elle renvoie un résultat vide. Cela indique que ImageMagick n'a pas trouvé le chemin d'accès à ses fichiers DLL requis pour le traitement.
Dans mon cas, le problème était simplement dû à un manque de configuration sur Azure:
REMARQUE: pour les personnes rencontrant également ce problème sur Azure, vous pouvez consulter la réponse this SO qui explique comment ajouter une variable d'environnement à l'aide d'une transformation XDT.
Je recevais la même erreur pour avoir oublié quelques citations simples.
Lors de la combinaison d'images avec convert -drawavec des guillemets, l'image fournie doit être entourée de guillemets.
Aucun délégué de décodage pour ce format d'image '' @ error/constit.c/ReadImage/504
convert myBackground.png -font Arial -pointsize 20 \
-draw "gravity west image Over 50,80,20,20 'myForeground.png'" \
# -----------------------------------------^ added missing single quotes
-flatten ./finalImage.jpg
Lorsque j'ai ajouté entre guillemets simples autour de myForeground
, le problème a disparu. Quelle erreur moche!
Une autre commande Imagemagick serait:
convert pic1-jpg.jpg[805x972+34+94] pic1-jpg-crop.jpg
ou comme indiqué précédemment
convert pic1-jpg.jpg -crop 805x972+34+94 +repage pic1-jpg-crop.jpg
voir Inline Image Crop à https://www.imagemagick.org/script/command-line-processing.php
De manière générale, je préfère utiliser x (minuscule) plutôt que X (majuscule) entre la largeur et la hauteur, pour faciliter la lecture. Mais soit fonctionne.
Je devais également lutter contre ce problème aujourd'hui dans le cadre d'une opération de conversion qui appliquait un profil d'espace colorimétrique différent.
Il semble que la commande de conversion d’imagick soit sensible à l’extension du nom de fichier du profil. Dans mon cas, c’était un fichier temporaire sans suffixe qui provoquait le même message d’erreur du titre de la question
convert infile.jpg -profile /tmp/profile-without-suffix outfile.jpg
L'ajout du suffixe correct au nom du fichier de profil résout le problème:
(en supposant le format ICC)
convert infile.jpg -profile /tmp/profile-without-suffix.icc outfile.jpg