ruby-on-rails-3 - rierwave minimagick 转换的 svg 不兼容

标签 ruby-on-rails-3 svg carrierwave minimagick

我在rails-3-2项目上安装了一个带有mini-magick的载波。 我在为上传的 svg 图像创建版本时遇到问题。 我的 uploader 代码如下

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 图像时,转换都需要很长时间。当我尝试显示图像时,浏览器不会渲染它们。

有人遇到过这个问题吗?请帮忙。

最佳答案

我没有将 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 
end

关于ruby-on-rails-3 - rierwave minimagick 转换的 svg 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24626796/

相关文章:

javascript - javascript/svg 中的 defs 是什么

ruby-on-rails - 事件记录 : size vs count

database-design - 单表继承是解决我的 Rails 问题的正确解决方案吗?

ruby-on-rails - 如何在rails中扩展belongs_to功能

ruby-on-rails - Rails 中特定页面的不同布局

javascript - 如何使用 html2canvas 从 svg 显示和保存图像为 jpg 或 png?

css - 在 SVG 使用实例中传递自定义属性

ruby-on-rails - Carrierwave裁剪特定版本

ruby - 重新创建版本!使用 wiki 中规定的唯一文件名方法

file - 将大图像上传到 s3 时 Elastic Beanstalk 超时