我有一个地方,我使用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。
提前致谢,
答案 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)本身一起使用了...... 希望它会帮助某人..... :)。