如何将八角形图像转换为八度音阶的svg?

时间:2015-07-18 05:27:43

标签: image-processing svg png octave

我有一个黑色的白色图像,我首先要将其转换为具有透明背景的png,以便仅保留图像的黑色部分。使用此输出图像我想将其转换为svg。所有这些都可以通过代码连接到服务器的后端。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我不确定这会一直有效,但它可能会让你开始。我建议ImageMagickpotrace这两个版本都是免费的,适用于OS X,Linux和Windows。您可以将它们集成到PHP中并将它们作为库函数运行,但是现在,我只是使用终端/命令行。

让我们先用ImageMagick制作一个棋盘图像

convert -size 200x100 pattern:checkerboard chess.jpg

enter image description here

我们现在可以将其设为阈值,使其成为纯黑色和白色,如下所示:

convert chess.jpg -threshold 50% chessbw.jpg

enter image description here

然后我们要将其发送到potrace以制作svg,但这需要pbm格式文件,因此我们将其转换为pbm,如下所示:< / p>

convert chess.jpg -threshold 50% chessbw.pbm

现在我们告诉potrace将其转换为svg

potrace -b svg chessbw.pbm -o result.svg

但这并不容易看到,因此我们ImageMagickresult.svg转换为JPEG,但背景为红色,以便我们可以看到透明区域:

convert -background red result.svg result.jpg

enter image description here

好的,这更像是一个解释而不是一个简单的答案,所以我会将所有这些简化为一个完成整个操作的命令:

convert chess.jpg -threshold 50% pbm:- | potrace -b svg - -o result.svg

我希望有所帮助。