来自 svg 上传的载波 png 缩略图

问题描述 投票:0回答:1

在 Rails 上使用 ruby。 我想要通过 Carrierwave 上传 SVG 文件来制作 .png 缩略图。

我在使用 Carrierwave 将文件转换为 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
ruby-on-rails svg carrierwave
1个回答
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
end
© www.soinside.com 2019 - 2024. All rights reserved.