23

私は数日間、これに頭を悩ませてきました。最近、画像アップローダーが正常に動作しなくなりました。いくつかの可能性を調査しましたが、私の場合、提案された解決策はどれもうまくいきませんでした。

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

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

詳細は次のとおりです。

  • Mac OS X 10.8.3
  • ImageMagick 6.8.4-4 2013-03-29
  • libtool => /usr/bin/libtool
  • レール 3.2.13
  • ルビー 1.9.3p194

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 (教室オブジェクトを更新していますが、写真はロケーション モデルにあります。(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 に関連している可能性があると誰かが示唆していました)。
  • コンピューターを再起動しました。
  • を含むgemバージョンのバリエーションを試しました

    # 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"}

アップロードは機能しますが、スケーリングが必要です;-)

誰かが私が見逃しているものを見ることができますか?

4

11 に答える 11

22

この問題に遭遇したところ、ghostscript がインストールされていないことが問題であることが判明しました。私は Scott Cornwell のアドバイスを受けて、エラーのサイレンシングを削除し、ghostscript が利用できないために変換が失敗したと判断しました。

   brew install ghostscript 

問題を修正しました。

于 2013-06-25T18:09:22.003 に答える
10

私のサーバーはLinux上にありますが、同じ問題がありました。私はテストする Mac を持っていないので、その方法を正確に説明することはできませんが、うまくいけば、これが正しい方向に向けられることを願っています.

これは、ImageMagick 6.8.5-5、Paperclip 3.4.2、コカインの最新バージョン、Rails 3.2.13 で機能しました。

Paperclip gem の geometry_detector_factory.rb に移動し、identify 呼び出しの前後の 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

そして、DELEGATES 行を探します。ImageMagick が動作している別の Linux サーバーがあり、2 つを比較したところ、新しいサーバーにはデリゲートが 2 つしかインストールされていないことがわかりました。私は実行できました:

yum install ImageMagick-devel

次に、ImageMagickをmake、make installで再コンパイルすると、機能しました。

また、ImageMagick サイトでデリゲートを手動で見つけて、1 つずつインストールすることもできますが、そのライブラリでほぼカバーされています。

ImageMagick をデバッグしていますか? 誰もそんな暇なんかありはせん!

于 2013-05-28T23:53:27.590 に答える
6

ペーパークリップ 3.5.2、コカイン 0.5.3、および ImageMagic 6.8.8 を使用して、私のウィンドウ開発環境で問題が発生しました。

解決策は次を追加することでした:

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

config/environment/development.rb に

于 2014-01-17T11:03:25.860 に答える
3

同様の問題がありましたが、古い PaperClip (3.0.2) でした。

私の場合、次のように修正しました:

gem 'cocaine', '0.3.2'
于 2013-04-27T21:29:34.373 に答える
0

ImageMagickをアップグレードしようとしたことはすでに述べましたが、同じ問題があり、アップグレードしてImageMagick 6.8.0-10 2013-03-03修正しました。

于 2013-05-14T01:39:45.740 に答える
0

同じ問題があり、 ldconfig コマンドを使用して必要なリンクを作成し、最新の共有ライブラリにキャッシュするようにダイナミック リンカー ランタイム バインディングを構成すると解決しました。

したがって、次のコマンドを使用する必要があります。

sudo ldconfig /usr/local/lib

実際には、 how-to-install-image-magick-and-setup-paperclip の手順を使用して imagemagick を再インストールすることをお勧めします。

于 2014-12-16T11:33:12.037 に答える