回形针 - 将SVG转换为PNG时保持透明度

时间:2012-03-05 11:58:49

标签: ruby-on-rails svg png paperclip

我有一个地方,我使用paperclip上传SVG文件,并将其转换为具有相同尺寸的PNG。 转换后,当我上传的SVG具有透明背景时,我的最终PNG输出为白色背景。

尝试使用paperclip convert_options,但它没有提供正确的输出,例如图像在边框上有一些白色像素。

示例,trans<< “-fuzz 0%-transparent'rgb(255,255,255)'”

最终使用了一个after_save方法,该方法使用inkscape将我的SVG转换为PNG并替换回形针生成的PNG。

示例,inkscape --export-png = OUTPUT.png INPUT.svg

但这看起来像是双重工作,使用回形针(IM)和inkscape。 那么,当我上传的SVG具有透明背景时,有没有其他方法可以使用具有透明背景的回形针来获得正确的PNG。

提前致谢,

2 个答案:

答案 0 :(得分:3)

我通过Paperclip'ource_file_options'选项修复了问题:

has_attached_file :icon,
                    source_file_options:  { all: '-background transparent' },
                    styles: {
                      :"200" => ["200", :png],
                    }

答案 1 :(得分:2)

最终我自己解决了这个问题...... :) 这是我的坏事,因为我没有看到“-layers merge”从初始化器添加到我的paperclip命令......

  

Paperclip :: Attachment.default_options [:convert_options] = {:all =>   '-layers merge'}

最后让它与paperclip(IM)本身一起使用了...... 希望它会帮助某人..... :)。