我已使用以下命令成功将PNG转换为SVG:
convert Slide3.png Slide3_converted.svg
问题是生成的文件高达380MB!
我尝试了这个版本的命令:
convert -size 2000x1200 Slide3.png Slide3_converted_smaller.svg
但没有骰子。相同的大小。
答案 0 :(得分:14)
SVG是一种矢量图像格式,因此将光栅图像(jpg,png,gif等)转换为svg可能是一项复杂的任务。
我尝试转换一个简单的图像:白色背景,红色圆圈和蓝色方块使用:
convert input.png output.svg
这是来自此命令创建的svg文件的示例:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg width="800" height="600">
<circle cx="0" cy="0" r="1" fill="white"/>
<circle cx="1" cy="0" r="1" fill="white"/>
...
<circle cx="218" cy="151" r="1" fill="rgb(255,247,247)"/>
<circle cx="219" cy="151" r="1" fill="rgb(255,40,40)"/>
<circle cx="220" cy="151" r="1" fill="red"/>
<circle cx="221" cy="151" r="1" fill="rgb(255,127,127)"/>
<circle cx="222" cy="151" r="1" fill="white"/>
<circle cx="223" cy="151" r="1" fill="white"/>
...
<circle cx="799" cy="599" r="1" fill="white"/>
</svg>
基本上ImageMagick为每个像素创建了一个1px半径圆,用正确的颜色绘制它。 从5KB png开始,我的输出是22MB svg,这解释了你获得的巨大文件大小。
根据ImageMagick文档(请参阅here),这是因为“ AutoTrace ”(请参阅here)库缺失:
“如果未安装”AutoTrace“库并将其编译为IM, 那么生成的SVG输出将是一个巨大的单个像素 圈子,生成二进制结果,而不是概述的平滑SVG 图片。这些图像通过比较是巨大的,并且通常需要很长时间 时间由SVG渲染渲染。“
安装完AutoTrace库后,您可以尝试使用以下内容:
convert autotrace:A.gif A_traced.png