Rails - WIndows 7 carrierwave,minimagick调整大小不起作用

时间:2011-10-15 18:31:05

标签: ruby-on-rails windows-7 imagemagick carrierwave minimagick

我尝试使用我的rails应用程序设置上传照片。但是,载波上传器不会调整正在上传的照片的大小。当我不调用resize_to_fill函数时,照片会完美上传。有什么建议吗?

使用resize_to_fill提交照片时,会返回错误“未能处理”。我该如何解决?

我想我需要''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

的Gemfile
“carrierwave”,“0.4.10”
“mini_magick”,“3.2.1”
“rails”,“2.3.14”

平台
win7 64bit
红宝石1.8.7 imagemagick(path = C:\ ImageMagick-6.7.2-Q16)

batterhead


感谢您的回复。以下是我的编码,请指教。
我只是想问题是我的组合win7 + imagemagick + mini_magick + carrierwave?我想这个问题应该很容易被很多人复制。这些版本是否彼此不兼容?

我刚测试了我的应用程序并尝试再次上传照片。返回了processing_error:
无法使用MiniMagick进行操作,也许它不是图像?原始错误:命令(“识别-ping C:/Users/User/mini_magick20111018-4296-f18lsi-0.jpg”)失败:{:output =>“'识别'\ 244 \ 243 \ 254O \ 244 \ 272 \ 263 \ 241 \ 251Y~ \ 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

2 个答案:

答案 0 :(得分:2)

我遇到过类似的问题,虽然不是在Windows上,但这些信息可能有所帮助。

在MiniMagick的Github页面(https://github.com/probablycorey/mini_magick/)上,似乎MiniMagik依赖于“mogrify”命令。

我调试问题的第一步是确保在我的开发,登台和生产系统上构建了正确的库,并且“mogrify”命令可用。

为了实现这一目标,在我的OS / X系统上,我必须卸载并重新安装ImageMagik,这是我用macports做的。

我使用“识别文件名”验证了安装,然后在Rails控制台中执行了以下操作:

filename = '/Users/me/tmp/testfile.jpg'
image = MiniMagick::Image.open(filename)

答案 1 :(得分: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