问题
I am attempting to setup Spree for the first time. Everything was going well until I hit the image upload. I have installed Imageamgick using homebrew on Mac OSX Mountain Lion. Uploading any image gives me the following error.
Paperclip::NotIdentifiedByImageMagickError in Spree::Admin::ImagesController#create
Command :: identify -format %wx%h :file
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/fq/9g_6hmg513g6137rb6sbghw00000gn/T/stream20121005-26943-16883d4.png is not recognized by the 'identify' command.>
Paperclip::NotIdentifiedByImageMagickError (/var/folders/fq/9g_6hmg513g6137rb6sbghw00000gn/T/stream20121005-26943-16883d4.png is not recognized by the 'identify' command.):
paperclip (2.7.1) lib/paperclip/geometry.rb:29:in `from_file'
spree_core (1.2.0) app/models/spree/image.rb:35:in `find_dimensions'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `_run__1794851703999987262__post_process__1580526166879208018__callbacks'
When I run identify from the command line I get the following output
Image Settings:
-alpha option on, activate, off, deactivate, set, opaque, copy
transparent, extract, background, or shape
-antialias remove pixel-aliasing
-authenticate password
decipher image with this password
-channel type apply option to select image channels
-colorspace type alternate image colorspace
-crop geometry cut out a rectangular region of the image
-define format:option
define one or more image format options
-density geometry horizontal and vertical density of the image
-depth value image depth
-extract geometry extract area from image
-features distance display image features (e.g. contrast, correlation)
-format "string" output formatted image characteristics
-fuzz distance colors within this distance are considered equal
-gamma value of gamma correction
-interlace type type of image interlacing scheme
-interpolate method pixel color interpolation method
-limit type value pixel cache resource limit
-monitor monitor progress
-ping efficiently determine image attributes
-quiet suppress all warning messages
-regard-warnings pay attention to warning messages
-respect-parentheses settings remain in effect until parenthesis boundary
-sampling-factor geometry
horizontal and vertical sampling factor
-seed value seed a new sequence of pseudo-random numbers
-set attribute value set an image attribute
-size geometry width and height of image
-strip strip image of all profiles and comments
-unique display the number of unique colors in the image
-units type the units of image resolution
-verbose print detailed information about the image
-virtual-pixel method
virtual pixel access method
Image Operators:
-negate replace every pixel with its complementary color
Miscellaneous Options:
-debug events display copious debugging information
-help print program options
-list type print a list of supported option arguments
-log format format of debugging information
-version print version information
By default, the image format of `file' is determined by its magic
number. To specify a particular image format, precede the filename
with an image format name and a colon (i.e. ps:image) or specify the
image type as the filename suffix (i.e. image.ps). Specify 'file' as
'-' for standard input or output.
Any help would be greatly appreciated.
Thanks, Cory
回答1:
My error was - “Paperclip::NotIdentifiedByImageMagickError in Spree::Admin::ImagesController”
I fixed this error some days ago.
Before that I tried:
- Update XCode (with Command-Line Tools)
- Update Imagemagick (i tried it from source and as binary module)
- Update MacPort
- Used Brew (refreshing with all dependencies for Imagemagic, used “brew doctor”), not MacPort
- Reinstall all gems that use Imagemagick
- Bundle update
- etc
And sure I had my “Paperclip::Attachment.default_options[:command_path]” option in production.rb file pointing to Imagemagick bin folder.
Several times i did it from a to z, again and again.
But nothing could help me.
By the way, in all cases i had worked fine “convert”, “identify” and “display” with test images of any kind, but not in my rails app (spree app).
I dived dipper and tried to do research inside rails console with
Paperclip.run("identify", "-format %m :file", :file => "/path/to/image”)
as paperclip do. And only new format (cocaine 0.4) of this command:
Paperclip.run("identify", "-format %m /path/to/image")
worked fine!!!
As a result, i found that cocaine 0.4 is the source of my problem. I tried downgrade to cocaine 0.3.2 in my Gemfile and my Spree app start working!!!
All i need to do is use cocaine 0.3.2 instead of 0.4!!!
回答2:
Check if png format is in the list of compiled formats of identify:
identify -list format
If it's not, you might have to recompile it with these options:
./configure --prefix=/usr/local --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes
回答3:
Also I met the problem when image file doesn't exists in public folder.
I've just copied a random file with the same name and everything started work.
parepclip 2.7.5 cocain 0.3.2
来源:https://stackoverflow.com/questions/12753157/paperclipnotidentifiedbyimagemagickerror-in-spreeadminimagescontrollercre