我在rails-3-2项目上安装了一个带有mini-magick的carrierwave。我面临着为上传的svg图像创建版本的问题。我的上传程序代码如下
class SVGUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
process resize_to_fit: [400, 400]
version :thumb do
resize_to_fit(140, 140)
end
def extension_white_list
[:svg]
end
def store_dir
@dir ||= if ENV['PARALLEL_TEST_GROUPS']
"system/uploads/#{ENV['TEST_ENV_NUMBER']}/#{Rails.env}/#{model.class.to_s.underscore}/#{model.name}"
else
"system/uploads/#{Rails.env}/#{model.class.to_s.underscore}/#{model.id.to_s}"
end
end
end问题是,当我上传任何svg图像时,它需要很长时间才能转换。当我尝试显示图像时,浏览器不会渲染它们。
有人遇到过这个问题吗?请帮帮忙。
发布于 2014-11-22 04:20:20
I保存时不使用svg到png格式
我解决了这个问题:
class FileUploader < CarrierWave::Uploader::Base
include CarrierWave::MimeTypes
include CarrierWave::MiniMagick
process :set_content_type
version :super_thumb, :if => :is_picture? do
process :resize_to_fill => [50, 50]
end
protected
def is_picture?(picture)
return false if set_content_type(picture).include?('svg')
set_content_type(picture).include?('image')
end
endhttps://stackoverflow.com/questions/24626796
复制相似问题