我有一个黑色的白色图像,我首先要将其转换为具有透明背景的png,以便仅保留图像的黑色部分。使用此输出图像我想将其转换为svg。所有这些都可以通过代码连接到服务器的后端。我怎样才能做到这一点?
答案 0 :(得分:1)
我不确定这会一直有效,但它可能会让你开始。我建议ImageMagick
和potrace
这两个版本都是免费的,适用于OS X,Linux和Windows。您可以将它们集成到PHP中并将它们作为库函数运行,但是现在,我只是使用终端/命令行。
让我们先用ImageMagick制作一个棋盘图像
convert -size 200x100 pattern:checkerboard chess.jpg
我们现在可以将其设为阈值,使其成为纯黑色和白色,如下所示:
convert chess.jpg -threshold 50% chessbw.jpg
然后我们要将其发送到potrace
以制作svg
,但这需要pbm
格式文件,因此我们将其转换为pbm
,如下所示:< / p>
convert chess.jpg -threshold 50% chessbw.pbm
现在我们告诉potrace
将其转换为svg
potrace -b svg chessbw.pbm -o result.svg
但这并不容易看到,因此我们ImageMagick
将result.svg
转换为JPEG
,但背景为红色,以便我们可以看到透明区域:
convert -background red result.svg result.jpg
好的,这更像是一个解释而不是一个简单的答案,所以我会将所有这些简化为一个完成整个操作的命令:
convert chess.jpg -threshold 50% pbm:- | potrace -b svg - -o result.svg
我希望有所帮助。