黑白PNG到SVG

时间:2015-02-26 16:58:15

标签: google-maps svg imagemagick png

我有一个河流/陆地面具来区分土地和河流/湖泊。该文件的大小为(W)43,400x(H)21,600。

由于RAM立即填满,因此无法打开文件。我已将文件拆分为3600 * 3600块,它们打开正常。但是我试图在谷歌地图上绘制文件,当覆盖图像时系统仍然会变慢。

我想知道是否有办法将3600 * 3600 PNG图像传输到SVG,但只为黑色和白色之间的边界创建矢量。理论上这会减小文件的大小。

我目前正在尝试制作SVG文件,但文件大小约为1GB。它不会在linux(eog)中加载文件,并且在覆盖Google地图时不会加载。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:3)

根据您的图片,您可以使用potraceImageMagick执行此操作。我们假设您的初始图片是PNG文件,如下所示:

enter image description here

您可以使用ImageMagick将其设置为PBM格式图像,例如potrace首选,然后将其设为SVG,如下所示:

convert river.png pbm:- | potrace - -s -o river.svg

SVG文件的大小约为PNG的一半。如果有人喜欢查看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 version="1.0" xmlns="http://www.w3.org/2000/svg"
 width="3000.000000pt" height="2000.000000pt" viewBox="0 0 3000.000000 2000.000000"
 preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,2000.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M4554 16821 c-3 -3 -114 -6 -247 -7 -395 -4 -437 -5 -467 -14 -17 -5
-32 -5 -34 -1 -5 8 -136 8 -151 -1 -5 -3 -53 -6 -106 -6 -53 0 -113 -5 -135
-11 -21 -5 -76 -11 -121 -13 -46 -1 -83 -5 -83 -8 0 -8 -3 -8 -107 -14 -45 -3
-102 -10 -125 -17 -24 -7 -72 -13 -108 -15 -71 -3 -90 -7 -134 -23 -16 -7 -31
-9 -34 -6 -3 2 -11 0 -19 -6 -10 -9 -13 -8 -13 0 0 7 -4 10 -9 6 -5 -3 -31 -8
...
...
-63 -3 -164 -1 -197 4 -18 3 -35 2 -38 -3 -4 -7 -62 -6 -178 3 -21 1 -41 -1
-43 -5 -2 -3 -39 -4 -82 -1 -129 8 -152 8 -152 1 0 -4 -21 -5 -47 -3 -91 8
-135 10 -139 6z"/>
</g>
</svg>