Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PaperClip Error NotIdentifiedByImageMagickError when scaling images

Tags:

I have been banging my head against this for several days. Recently, my image uploader has stopped working properly. I have investigated several possibilities, but have none of the suggested solutions have worked in my case.

The error message is:

#<Paperclip::Errors::NotIdentifiedByImageMagickError:Paperclip::Errors::NotIdentifiedByImageMagickError>  

Here are the details:

  • Mac OS X 10.8.3
  • ImageMagick 6.8.4-4 2013-03-29
  • libtool => /usr/bin/libtool
  • Rails 3.2.13
  • Ruby 1.9.3p194

development.rb contains appropriate path (and I have verified that it is correct using which identify)

Paperclip.options[:command_path] = "/usr/local/bin/" 

Gemfile.lock (relevant portion)

paperclip (3.4.1)   activemodel (>= 3.0.0)   activerecord (>= 3.0.0)   activesupport (>= 3.0.0)   cocaine (~> 0.5.0) 

MODEL (I am updating a classroom object, but the picture resides in the location model. (Classroom has_one :location, :as => :locatable)

Model location.rb

class Location < ActiveRecord::Base   ## Paperclip method for uploading location images    has_attached_file :picture, :styles => {:show => "1200x500#", :medium => "300x300#", :thumb => "100x100>"}, :convert_options => {:show => "-gravity center"}     has_attached_file :building_sign, :styles => { :show => ["1200x500#", :jpg], :medium => ["300x300#", :jpg], :thumb => ["100x100#", :jpg] }, :convert_options => {:show => "-gravity center"}   belongs_to :locatable, :polymorphic => true   belongs_to :location_type     validates :name,  :presence => true    validates :latitude, :presence => true,                        :length => {:within => 9..18},                        :numericality => true   validates :longitude, :presence => true,                         :length => {:within => 9..18},                         :numericality => true end 

Controller classrooms_controller.rb

def update   @classroom = Classroom.find_by_facility_code_heprod(params[:id].upcase)    respond_to do |format|     if @classroom.update_attributes(params[:classroom])       format.html { redirect_to(@classroom, :notice => 'Classroom was successfully updated.') }       format.xml  { head :ok }     else       format.html { render :action => "edit" }       format.xml  { render :xml => @classroom.errors, :status => :unprocessable_entity }     end   end end 

What I've tried.

  • I've made sure that the image name is simple (USB2230.jpg), no colons.
  • I've updated the version of ImageMagick to the most recent.
  • I've also re-downloaded and reinstalled the CommandLine Tools for 10.8.3 (someone suggested that the issue might be related to an outdated libtool).
  • I've rebooted the computer.
  • I've tried variations on gem versions including

    # variation 1 gem 'paperclip', '~> 2.8.0' gem "cocaine", "=0.3.2"  # variation 2 gem "paperclip", "~> 3.4.0" gem "cocaine", "= 0.4"  # variation 3 (which is what is reflected in the included Gemfile.lock info above). gem "paperclip", "~> 3.4.0" 

If I remove the scaling,

:styles => {:show => "1200x500#", :medium => "300x300#", :thumb => "100x100>"}, :convert_options => {:show => "-gravity center"} 

the upload works, but I kind of need the scaling ;-)

Can anyone see something I am missing?

like image 744
humbledaisy Avatar asked Apr 01 '13 13:04

humbledaisy


Video Answer


1 Answers

We just ran into this issue, and it turned out to be an issue where ghostscript wasn't installed. I took the advise of Scott Cornwell and removed the silencing of errors, and then determined that convert was failing because ghostscript wasn't available.

   brew install ghostscript  

Fixed the issue for us.

like image 192
rwc9u Avatar answered Sep 25 '22 18:09

rwc9u