我正在将我的应用程序升级到Ruby 1.9上的Rails 3.2。我不得不放弃attachment_fu
。 Carrierwave似乎是明显的替代品。在这个阶段,我将文件上传到文件系统(还没有云文件)。
我在Lion,XCode 4.3.2,安装了命令行工具。运行:
$ brew doctor
# Your system is raring to brew.
我可以在此配置中上传和调整图片大小:
我可以在新配置中上传图片:
(后跟$ 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
)是Portrait
,ReferenceLetter
的父级,以及其他附件类。每个附件类都继承自Attachment
,:polymorphic => true
和belongs_to :attachable
(用户),而has_many :portraits
,:reference_letters
等等{ {1}}。
这些都不起作用(从carrierwave的已知问题页面链接):
Why is this RMagick call generating a segmentation fault?
我不想按照此处的建议手动安装ImageMagick:
carrierwave + mini_magick gems = not an image error
我正在使用Homebrew。帮助太棒了。感谢。
答案 0 :(得分:16)
今天与同样的错误作斗争。问题不在于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并将params添加到./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
您可以在http://www.imagemagick.org/script/advanced-unix-installation.php
找到MacOS的安装说明更新
由于某些原因,系统可以没有jpeg转换库。要解决此问题,您可以使用apt-get或ppa安装imagemagick以及所有必需的依赖项或尝试安装manualy
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
答案 1 :(得分:9)
2014年2月
我刚刚遇到这个问题,我很高兴能够从源头上编译ImageMagick,但我想先试试brew update && brew upgrade imagemagick
。
==> Upgrading 1 outdated package, with result:
imagemagick 6.8.7-7
有效。
答案 2 :(得分:0)
首先确保您的机器具有所需的所有编译器和工具。
sudo yum groupinstall "Development Tools"
sudo yum install rpmdevtool libtool-ltdl-devel
sudo yum install ImageMagick-devel