2013-04-01 11 views
21

私はこれに対して数日間頭を悩まされています。最近、画像アップローダが正常に動作しなくなりました。私はいくつかの可能性を調査しましたが、提案された解決策のどれも私の場合には機能していません。PaperClipエラー画像をスケーリングするときにNotIdentifiedByImageMagickErrorが発生する

エラーメッセージは次のとおりです。ここで

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

は、詳細は以下のとおりです。

  • のMac OS X 10.8.3
  • のImageMagick 6.8.4-4 2013年3月29日
  • libtool =>/usr/bin/libtool
  • Rails 3.2.13
  • Ruby 1.9.3p19 4

development.rb適切なパスを含む(私はそれがwhich identifyを使用して正しいことを確認した)

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

Gemfile.lock(関連部分)

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

MODEL(I教室のオブジェクトを更新してい画像はロケーションモデルに存在します。 (Classroom has_one :location, :as => :locatable)

モデル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 

私が試したどのようなコントローラ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 

  • 画像の名前がシンプル(USB2230.jpg)で、コロンがないことを確認しました。
  • ImageMagickのバージョンを最新のものに更新しました。
  • また、10.8.3のCommandLine Toolsを再ダウンロードして再インストールしました(誰かが、問題が旧式のlibtoolに関係している可能性があります)。
  • 私はコンピュータを再起動しました。
  • ;-)私は

    私はスケーリングを削除した場合
    # 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" 
    

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

アップロード作品を含む宝石のバージョンのバリエーションを試してみたが、私は一種のスケーリングを必要とします

誰かが見逃していることがありますか?

答えて

0

私はこの問題を解決しました。 brewは、ディレクトリのCellar、/ usr/local/Cellarを呼び出します 2つのImageMagickを持っていないかどうかを確認してください。ImageMagick-Ruby182という名前がありますので、brewを実行するとImageMagick-Ruby182をアンインストールし、イメージマジックをインストールし、イメージマジックを再インストールします。

0

paperclip gemとcocaine gemのバージョンを更新してください。 Set PaperClipバージョン:3.4.1 コカインバージョンを設定します。

私は同様の問題が、古いクリップ(3.0.2)を持っていた私は、同じ問題に直面し、私の問題は、クリップ宝石githubの問題であり、すでに

+0

バージョンはすでに3.4.1で、コカインは0.5.0です(上記のGemfile.lockに示されています)。 – humbledaisy

3

ました。私の場合は

は、私はそれを修正:

gem 'cocaine', '0.3.2' 
0

あなたはすでにあなたがImageMagickのをアップグレードしようとしたことを述べたが、私は私のためにそれを固定ImageMagick 6.8.0-10 2013-03-03に同じ問題とアップグレードを持っていました。

+0

ありがとうございます。運がない6.8.5-6 2013-05-16に更新されました。 – humbledaisy

10

私のサーバーはLinux上にありますが、同じ問題がありました。 Macをテストする必要がないため、どうやって行うのか正確には分かりませんが、うまくいけば、これは正しい方向に向いています。

これは、ImageMagickの6.8.5-5に私のために働いた、ペーパークリップ3.4.2、コカインの最新バージョンは、3.2.13をレール:

私はペーパークリップの宝石にgeometry_detector_factory.rbに入り、2をコメントアウト対応する「エンド」の文と一緒に(このステップは、ちょうど私が問題を決定するために何をしたかを説明する必要はありません)

#silence_stream(STDERR) do 
    Paperclip.run("identify", "-format '%wx%h,%[exif:orientation]' :file", :file => "#{path}[0]") 
#end 

:特定の呼び出しの周りのライン。これにより、 "identify"コマンドを実行したときにコマンドラインでエラーが表示されるようになりました。

基本的にはエラーは言っていない:「この画像形式にはデコードデリゲート」

をあなたはおそらくそのエラーを検索し、それを考え出したが、基本的に私がやったことはUSR/local/binに、実行に行くだった得ることができます:(必要もない、あなたがインストールされているものを見たいと思っていない限り)

convert -list configure 

とデリゲートの行を探します。私はImageMagickが動作していた別のLinuxサーバを用意していましたが、2つを比較したところ、新しいサーバをインストールしたのは2人だけでした。私は実行することができました:

yum install ImageMagick-devel 

その後、ImageMagickをmake、make installで再コンパイルして動作させました。

ImageMagickサイトで代理人を手作業で見つけて、それらを1つずつインストールすることもできますが、そのライブラリは私のためにかなりカバーしています。

ImageMagickのデバッグ?誰もそんな暇なんかありはせん!

+1

ありがとう!それは私のクライアントマシンで働いた。 (私は嫌なMacポートを使用してしまいましたが、これはあまりにも多くの時間を費やしていました。)私が従った手順はここでした(http://www.imagemagick.org/script/binary-releases.php #macosx)。 Paperclip.options [:command_path] = "/ opt/local/bin /" – humbledaisy

+0

あなたの人生を保存するために私の開発環境を変更しなければなりませんでした。ありがとう – lngs

+0

Ubuntuについてはどうですか? :/同じ問題がまだ解決策を見つけられていない – Paladini

21

この問題が発生したばかりで、ghostscriptがインストールされていない問題が判明しました。私はScott Cornwellの助言を受けて、エラーの沈黙を取り除き、ゴーストスクリプトが利用できなかったためにconvertが失敗していると判断しました。

brew install ghostscript 

私たちの問題を解決しました。

+2

これはまさに私の問題の原因でした - 私はPaperclipを使ってPDFをアップロードしてサムネイルを作成していました。 Ghostscriptをインストールしていないと悲しみにつながった。 – riney

+0

パーフェクト、これは私の問題を解決!私は単純にpdfをアップロードしようとしていました - サムネイルや操作をしないでください。 paperclipが明示的な要求なしにpdfからサムネイルを作成しようとしない限り、エラーメッセージは少し誤解を招きます。 – Dorian

+0

これです。 PDFを処理するにはゴーストスクリプトが必要です。ありがとうございました! –

0

libtool brew install libtoolを再インストールしてくれました。

5

paperclip 3.5.2、コカイン0.5.3、ImageMagic 6.8.8を使用している私のウィンドウの開発環境で問題が発生しました。

Paperclip.options[:command_path] = 'C:\Program Files\ImageMagick-6.8.8-Q16' 

設定/環境/ development.rbに

+0

この回数は100万回です。これは私の問題に対する答えでした。私は/ user/local/bin /およびすべてのバリエーションを無駄にしようとしていました。 – ddonche

0

生産ではなく、開発中の当社のクリップ機能を壊したimage_magicと同じ問題(奇妙な、私が持っていた:

ソリューションは、追加することでした知っている)。 私たちのgemfileとGemfile.lockからローカルにイメージ・エージェントを削除した後でも(バンドル・インストールとそのすべてのものを実行している)、herokuのプロダクションに再度デプロイすると、エラーは継続していました! (奇妙な、私が知っている)。

何トリックをやってしまったことは実行していた:

$ heroku repo:purge_cache -a myAppName 

を(からの引用:https://github.com/heroku/heroku-repo#purge_cache

アプリをデプロイする場合、Herokuのは、高速化するためにあなたの資産とインストール宝石のようないくつかのことをキャッシュしますアップデプロイメント。 これは素晴らしい機能ですが、時には副作用が発生することがあります。この場合、imagemagickの宝石に関する何かがプロダクションのキャッシュに「詰まっている」ように見えるので、パージが私たちの問題を解決しました(パージ後

0

私はダイナミックリンカの実行時バインディングを設定して、最新の共有に必要なリンクとキャッシュを作成するときに同じ問題を解決しましたが、解決しました。 ldconfig commandを使用するライブラリー。

sudo ldconfig /usr/local/lib 

実は、私のアドバイスはhow-to-install-image-magick-and-setup-paperclipでの手順を使用してのimagemagickを再インストールするには:

だから、あなたは、次のコマンドを使用する必要があります。

0

は、念のために:

brew uninstall libtool 
brew install libtool 
brew uninstall jpeg 
brew install jpeg 
brew link --overwrite jpeg 
brew unlink freetype && brew link freetype 
関連する問題