svg上传的carrierwave png缩略图

时间:2018-07-26 17:19:41

标签: ruby-on-rails svg carrierwave

在轨道上使用红宝石。我希望通过SVG文件的载波上传来制作.png缩略图。

我在获取载波以将文件转换为png的语法上遇到麻烦。

这是关闭的,缩略图的内容是png数据,但文件扩展名是.svg

class SvgUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  storage :file

  version :thumb do
    process :convert => 'png'
    process resize_to_fit: [50, 50]
  end
  version :thumb_small do
    process :convert => 'png'
    process resize_to_fit: [15, 15]
  end

1 个答案:

答案 0 :(得分:0)

经过大量研究,有一种方法可以更改文件后缀。困难的部分是使载波仅更改缩略图的后缀。如果不小心,它将更改所有文件后缀,包括原始的上载文件。

这是起作用的

class SvgUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  storage :file

  version :thumb do
    def full_filename(for_file)
  super(for_file).chomp(File.extname(super(for_file))) + '.png'
    end
    process :convert => 'png'
    process resize_to_fit: [50, 50]
  end

  version :thumb_small do
    def full_filename(for_file)
      super(for_file).chomp(File.extname(super(for_file))) + '.png'
    end
    process :convert => 'png'
    process resize_to_fit: [15, 15]
  end