我尝试使用我的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
答案 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是否正常工作
步骤2.在您的irb上尝试以下命令
> irb
> require 'mini_magick'
> filename = '/Users/me/tmp/testfile.jpg'
> image = MiniMagick::Image.open(filename)
第3步:检查Imagemagick支持的格式
> identify -list format
步骤4.下载并安装Imagemagick的解码代理
网站:http://www.imagemagick.org/download/delegates/
> tar -zxvf jpegsrc.v8b.tar.gz
> cd jpegsrc.v8b
> sudo ./configure
> sudo make
> sudo make install