回形针 - 将 SVG 转换为 PNG 时保持透明度
Posted
技术标签:
【中文标题】回形针 - 将 SVG 转换为 PNG 时保持透明度【英文标题】:Paperclip - Maintaining transparency when converting SVG to PNG 【发布时间】:2012-03-22 21:37:27 【问题描述】:我有一个地方,我使用回形针上传 SVG 文件,并将其转换为具有相同尺寸的 PNG。 转换后,当我上传的 SVG 具有透明背景时,我的最终 PNG 输出具有白色背景。
尝试使用回形针 convert_options,但它没有提供正确的输出,例如图像的边界上都有一些白色像素。
例如,反式
终于让它使用了 after_save 方法,该方法使用 inkscape 将我的 SVG 转换为 PNG 并替换回形针生成的 PNG。
例如,inkscape --export-png=OUTPUT.png INPUT.svg
但这看起来像是一项双重工作,使用回形针(IM)和inkscape。 那么,当我上传的 SVG 具有透明背景时,有没有其他方法可以使用具有透明背景的回形针来获得正确的 PNG。
提前致谢,
【问题讨论】:
【参考方案1】:我通过 Paperclip 'source_file_options' 选项修复了问题:
has_attached_file :icon,
source_file_options: all: '-background transparent' ,
styles:
:"200" => ["200", :png],
【讨论】:
【参考方案2】:终于自己解决了这个问题... :) 这是我的错,因为我没有看到“-layers merge”从初始化程序添加到我的回形针命令中......
回形针::Attachment.default_options[:convert_options] = :all => '-图层合并'
终于让它与回形针(IM)本身一起工作...... 希望它会帮助某人..... :)
【讨论】:
这个解决方案对我不起作用。 @Shaliko 解决方案效果很好。以上是关于回形针 - 将 SVG 转换为 PNG 时保持透明度的主要内容,如果未能解决你的问题,请参考以下文章
将 SVG 转换为 PNG,并将应用的图像作为 svg 元素的背景