-2

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

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

我想我需要“要求”“carrierwave/processing/mini_magick”来调用 resize_to_fill,但我不知道该文件放在哪里。

gemfile
“carrierwave”,“0.4.10”
“mini_magick”,“3.2.1”
“rails”,“2.3.14”

平台
win7 64bit
ruby​​ 1.8.7 imagemagick (路径 = 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 完成的。

我使用“识别文件名”验证了安装,然后在 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 回答