-2

Railsアプリで写真をアップロードするように設定しようとしました。ただし、carrierwaveアップローダーは、アップロードされる写真のサイズを変更しません。resize_to_fill関数を呼び出さないと、写真は完全にアップロードされます。何かアドバイス?

resize_to_fillを使用して写真を送信すると、「処理に失敗しました」というエラーが返されます。どうすれば修正できますか?

resize_to_fillを呼び出すには、「require」「carrierwave /processing / mini_magick」が必要だと思いますが、このファイルをどこに置くかわかりません。

gemfile
"carrierwave"、 "0.4.10"
"mini_magick"、 "3.2.1"
"rails"、 "2.3.14"

プラットフォーム
win764ビット
ルビー1.8.7imagemagick(パス= C:\ ImageMagick-6.7.2-Q16)

バッターヘッド


お返事をありがとうございます。以下は私のコーディングです、アドバイスしてください。
私はちょうど問題がwin7+imagemagick + mini_magick +carrierwaveの私の組み合わせから来ていると思っていますか?そのような問題は多くの人が簡単に再現できたはずだと思います。それらのバージョンは互いに互換性がありませんか?

アプリケーションをテストして、写真をもう一度アップロードしようとしました。返されたprocessing_error:
MiniMagickでの操作に失敗しました。画像ではない可能性がありますか?元のエラー:コマンド( "identify -ping C:/Users/User/mini_magick20111018-4296-f18lsi-0.jpg")が失敗しました:{:output => "'identify' \ 244 \ 243 \ 254O \ 244 \ 272 \ 263 \ 241 \251Υ〜\ 263 \ 241 \ 251R \ 245O \ 241B ............ "、:status_code => 1}
もちろん、jpgはC:/ Users/Userフォルダに作成されていません。助けてください。

{avatar_uploader.rb}  
class AvatarUploader < CarrierWave::Uploader::Base  
  include CarrierWave::MiniMagick  
  storage :file  
  def store_dir  
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"  
  end

  process :resize_to_fill => [320, 240]

  def extension_white_list  
    %w(jpg jpeg gif png)  
  end  
end

{event_photo.rb}  
class EventPhoto < ActiveRecord::Base  
  attr_accessible :event_id, :avatar, :created_by, :updated_by  

  belongs_to:event
  mount_uploader :avatar, AvatarUploader  
end

{preinitializer.rb}  
begin  
  require 'rubygems'  
  require 'bundler'  
end
4

2 に答える 2

2

この情報が役立つかもしれませんが、Windows ではありませんが、同様の問題に遭遇しました。

MiniMagick の Github ページ (https://github.com/probablycorey/mini_magick/) から、MiniMagik は「mogrify」コマンドに依存しているようです。

問題をデバッグするための最初のステップは、正しいライブラリが開発、ステージング、および運用システムで構築され、「mogrify」コマンドが利用可能であることを確認することでした。

そこにたどり着くには、私の OS/X システムで ImageMagik をアンインストールして再インストールする必要がありました。これは macports で行いました。

「identify filename 」を使用してインストールを確認し、Rails コンソールで次の操作を行いました。

filename = '/Users/me/tmp/testfile.jpg'
image = MiniMagick::Image.open(filename)
于 2011-12-12T18:24:39.817 に答える
0

ステップ 1: mini_magick が正常に動作しているかどうかを確認する

  • ImageMagick または GraphicsMagick がインストールされている必要があります。

ステップ 2. irb で次のコマンドを試してください

> irb
> require 'mini_magick'
> filename = '/Users/me/tmp/testfile.jpg'
> image = MiniMagick::Image.open(filename)
  • このプログラムの実行中に「この画像形式のデコード デリゲートがありません」などのエラーが発生した場合は、手順 3 に進みます。

ステップ 3: Imagemagick がサポートするフォーマットを確認する

> identify -list format
  • リストには jpg がリストされている必要があります。そうでない場合は、手順 4 に進みます。

ステップ 4.Imagemagick のデコード デリゲートをダウンロードしてインストールする

サイト: http://www.imagemagick.org/download/delegates/

> tar -zxvf jpegsrc.v8b.tar.gz
> cd jpegsrc.v8b
> sudo ./configure
> sudo make
> sudo make install
  • その後、Imagemagickを再インストールします
于 2012-06-23T20:28:00.553 に答える