2010-08-01 10 views
0

J'utilise Windows 7 et j'ai installé ImageMagic. Je peux exécuter la commande Identifier de la console sans problème.Erreur Paperclip: "aucun délégué de décodage pour ce format d'image"

Mais quand j'utiliser mon application Rails (exécuter à partir Aptana RadRails IDE), il me donne une erreur:

Magick: no decode delegate for this image format `/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0]'' @ error/constitute.c/ReadImage/532. 
Magick: no decode delegate for this image format `/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0]'' @ error/constitute.c/ReadImage/532. 


[paperclip] c:/ImageMagick-6.6.3-Q16/identify -format %wx%h 'C:/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0]' 
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError::/Users/karl/AppData/Local/Temp/stream,5000,1.jpg is not recognized by the 'identify' command.> 
[paperclip] c:/ImageMagick-6.6.3-Q16/identify -format %wx%h 'C:/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0]' 
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: C:/Users/karl/AppData/Local/Temp/stream,5000,1.jpg is not recognized by the 'identify' command.> 

Si je tente d'exécuter la même commande de la console, il fonctionne correctement (Sous tout utilisateur). (NOTE: Je ne l'ai pas des guillemets anglais)

C:\Users\karl>c:/ImageMagick-6.6.3-Q16/identify -format %wx%h C:/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0] 
600x450 

Une chose intéressante est que si je lance la commande manuellement avec des guillemets ('), je reçois la même erreur.

C:\Users\karl>c:/ImageMagick-6.6.3-Q16/identify -format %wx%h 'C:/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0]' 
Magick: no decode delegate for this image format `/Users/karl/AppData/Local/Temp/stream,5000,1.jpg[0]'' @ error/constitute.c/ReadImage/532. 

J'ai essayé de modifier Paperclip de travailler d'une manière qu'il ne serait pas ajouter des guillemets, mais il ne semble pas faire de différence ou je viens de faire quelque chose de mal.

+0

vos guillemets ajoutés manuellement dans la fenêtre cmd.exe ne fonctionnaient pas car ils étaient des guillemets simples. Essayez des guillemets doubles. cmd.exe ne comprend pas les guillemets simples. –

Répondre

0

Essayez de trouver la ligne dans le fichier lib/paperclib.rb:

params = quote_command_options(*params).join(" ") 

et le remplacer par:

params = params.join(" ") 
+1

Malheureusement, je n'ai pas de chaîne quote_command_options dans mon fichier paperclip.rb. J'ai pris cette version de git il y a quelques jours et installé comme un plugin. – Karl

+0

Wow, j'ai aussi ces sources de GitHub: http://github.com/thoughtbot/paperclip/blob/3be55fc85f15a79f1306aba334a6737f6d715991/lib/paperclip.rb#L109 –

+0

Pourriez-vous essayer de supprimer des guillemets dans 'geometry.rb'? Je ne sais pas quelle version de trombone vous utilisez. http://github.com/thoughtbot/paperclip/blob/v2.3.0/lib/paperclip/geometry.rb#L19 –

1

J'ai eu le même problème lors de l'installation sur Linux. Tout d'abord, si vous utilisez une bibliothèque client (MagickWand pour php, par exemple), vous devez vous assurer que les bibliothèques d'images sont installés d'abord, puis ImageMagick, puis votre poste.

Bien que je ne sois pas sûr de l'équivalent de Windows, je m'assure toujours d'avoir libjpeg-devel et libpng-devel.

Afin de vérifier ce que vous avez délégués, vous pouvez exécuter convert -list form, et cela va imprimer une liste de formats avec lesquels ImageMagick sait travailler.

+0

vous pouvez installer à partir de sources http://www.imagemagick.org/download/delegates/ – fl00r

1

Si vous obtenez cette erreur lorsque vous travaillez avec TTF polices et ImageMagick, vous devez également installer freetype-devel avant d'exécuter ./configure. Assurez-vous également vous exécutez le « make check » après l'avoir installé par leur installation à partir de lien source à http://imagemagick.org.