如何将 jpeg 图像转换为 octave 中的 svg?

How to convert a jpeg image to an svg in octave?

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

我不确定这是否会始终有效,但它可能会让您入门。我建议 ImageMagickpotrace 两者都是免费的,可用于 OS X、Linux 和 Windows。您可以将它们作为库函数集成到 PHP 和 运行 中,但是现在,我只使用 terminal/Commandline.

让我们从使用 ImageMagick 制作棋盘图像开始

convert -size 200x100 pattern:checkerboard chess.jpg

我们现在可以将其设置为纯黑白的阈值,如下所示:

convert chess.jpg -threshold 50% chessbw.jpg

然后我们要传给potrace做成svg,但是那需要pbm格式的文件,所以我们就这样转成pbm :

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

好的,这与其说是一个简单的答案,不如说是一种解释,所以我将把所有这些简化为一个命令来完成所有的事情:

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

希望对您有所帮助。