我使用增加密度的一般方法来获得“低多边形”曲线。所以我决定深入挖掘并解决这个问题,因为它似乎是这种方法的副作用,我认为它与原始密度或dpi有关。
我们在answer中看到72,在answer中看到96被建议作为图像的默认密度,但哪一个?如果我的不同怎么办?
ImageMagick有一种方法可以解决这个问题:
identify -verbose test.svg
这将提供有关图像文件的许多元数据,包括:
Image:
Filename: test.svg
Format: SVG (Scalable Vector Graphics)
Mime type: image/svg+xml
Class: ...
Geometry: ...
Resolution: 37.79x37.79
Print size: ...
Units: PixelsPerCentimeter
如果您想要更简洁的查询,可以尝试:
identify -format "%x x %y %U" test.svg
=> 37.789999999999999147 x 37.789999999999999147 PixelsPerCentimeter
如此论坛帖子所建议,并结合文档进行修改
现在我们知道了图像的电流密度,但可能需要将其转换为正确的单位以进行转换或修改(每英寸像素数或dpi)
这是一个简单的计算公式:每厘米像素数 x 2.54
37.789999999999999147 x 2.54 = 95.9866 ~> 96
如果您喜欢使用图表或在线计算器,可以尝试https://www.pixelto.net/cm-to-px-converter。
现在我们已经将正确的原始密度转换为dpi,上面的答案中提到的其余逻辑就会落实,svg文件可以通过乘以原始密度来缩放到更好的“分辨率”。
对我来说,原始密度作为png格式太过像素化了,因此在我的情况下,5倍的原始密度或-density 480
就足够了。请记住,这也会调整图像的大小,因此在使用/实现图像时需要进行相应的调整,以与原始svg进行比较。
注意:我也尝试了Inkscape方法,并且也遇到了像素化问题,但是已经看到了密度方法的改进,因此我决定深入研究它。然而,Inkscape尝试的输出给了我一个想法,您也可以用它来确定dpi,但是安装它需要很多步骤,而ImageMagick已经可以做到这一点。
Area 0:0:20.75:17 exported to 21 x 17 pixels (96 dpi)
-resize
命令会简单地拉伸转换后的图像,结果质量较差。 - Elistconvert -size 1024x1024 test.svg test.png
可以正常工作。只需确保在输入文件名之前出现-size
参数,否则会将16x16的图片放大以产生模糊效果。 - Futal