13

Ruby 1.9 でアプリを Rails 3.2 にアップグレードしています。私は落とさなければなりませんでしたattachment_fu。Carrierwave は明らかな代替品のように思われました。この段階で、ファイルをファイル システムにアップロードしています (まだクラウド ファイルはありません)。

私はLion、XCode 4.3.2、コマンドラインツールをインストールしています。ランニング:

$ brew doctor
# Your system is raring to brew.

この構成で画像をアップロードしてサイズを変更できます。

  • レール3.1.4
  • ルビー1.8.7
  • 搬送波 0.5.8
  • mini_magick 3.4

新しい構成で画像をアップロードできます。

  • レール3.2.3
  • ルビー 1.9.3 (または 1.9.2)
  • 搬送波 0.6.2

(後に$ bundle update) が続きますが、を使用してサイズを変更すると、次のmini_magickエラー メッセージが返されます。

"File Failed to manipulate with MiniMagick, maybe it is not an image Original Error: MiniMagick::Invalid", where File is the carrierwave uploader.

FileUploader には以下が含まれます。

include CarrierWave::MiniMagick
def store_dir .. end # the shipped default 
process :resize_to_limit => [500, 600]

私の添付ファイル クラス ( を使用) は、 、、およびその他の添付ファイルの種類のクラスのmount_uploader :file, FileUploader親です。各アタッチメント クラスは、、 is 、および(User)から継承し、さらに、 、などを継承します。PortraitReferenceLetterAttachment:polymorphic => truebelongs_to :attachablehas_many :portraits:reference_letters:as => :attachable

これらのどれも機能しませんでした (carrierwave の既知の問題ページからリンクされています):

この RMagick 呼び出しでセグメンテーション違反が発生するのはなぜですか?

ここで提案されているように、ImageMagick を手動でインストールしたくありませんでした。

Carrierwave + mini_magick gems = 画像エラーではありません

私はホームブリューを使用しています。ヘルプは素晴らしいでしょう。ありがとう。

4

3 に答える 3

17

今日も同じエラーで戦っていました。問題はmini_magickにはありませんでした。問題は、imagemagickのDELEGATESオプションにあります。

実行した場合

convert -list configure

あなたはこのようなものを持っている必要があります

Name          Value
-----------------------------------------------------------------
...
CONFIGURE     ./configure  '--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' '--disable-shared'
CONFIGURE_PATH /usr/local/etc/ImageMagick/
COPYRIGHT     Copyright (C) 1999-2012 ImageMagick Studio LLC
...
DELEGATES     bzlib djvu fontconfig freetype gvc jpeg jng jp2 lcms lqr openexr png rsvg tiff x11 xml zlib
...
VERSION       6.7.5

しかし、私の場合、キーDELEGATESにはxml値とzlib値しかありませんでした

DELEGATES     xml zlib

解決策は、ソースからimagemagickをインストールし、。/configureにパラメーターを追加することでした。

1. wget http://www.imagemagick.org/download/ImageMagick.tar.gz
2. tar xvfz ImageMagick.tar.gz
3. cd ImageMagick
4. ./configure --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 --disable-shared
5. make
6. sudo make install
7. sudo ldconfig /usr/local/lib
8. run again "convert -list configure" and look at changes

MacOSのインストール手順については、http://www.imagemagick.org/script/advanced-unix-installation.phpを参照してください。

アップデート

いくつかの理由で、システムにはjpeg変換ライブラリがない場合があります。これを修正するには、apt-getまたはppaを使用してimagemagickをインストールし、必要なすべての依存関係を設定するか、手動でインストールしてみてください

sudo apt-get install libjpeg62

詳細はこちらhttps://askubuntu.com/questions/211627/how-to-add-support-for-the-jpeg-image-format

2013年1月26日更新

libpngをインストールするには

このリンクhttp://www.libpng.org/pub/png/libpng.htmlをたどって、「ソースコード」ブロックを見つけてください。最新バージョンのリンクをコピーする

1. wget http://download.sourceforge.net/libpng/libpng-1.5.13.tar.gz
2. tar xvfz libpng-1.5.13.tar.gz 
3. cd libpng-1.5.13/
4 ./configure
5. make
6. sudo make install
7. Rebuild imagemagick

JPEGサポートを取得する別の方法

1. curl -O http://www.ijg.org/files/jpegsrc.v8c.tar.gz
2. tar zxvf jpegsrc.v8c.tar.gz
3. cd jpeg-8c/
4. ./configure
5. make
6. sudo make install
7. Rebuild imagemagick
于 2012-07-24T06:43:17.507 に答える