如何在没有抗锯齿的情况下光栅化 SVG

平面设计 向量 墨景 svg 抗锯齿 光栅
2022-01-09 07:21:43

我在inkscape 中制作了一张地图,现在需要将其更改为位图或.png。该地图将由一个计算机程序解释,该程序将寻找准确的颜色,因此边缘需要清晰。当我使用 inkscape 导出 .png、使用在线文件转换器甚至截取屏幕截图时,它始终是抗锯齿的。帮助。在此处输入图像描述

在此处输入图像描述

4个回答

Inkscape 的开发版本(即将发布的 0.91 版本)在“文档属性”窗口中有一个全局抗锯齿切换,它也应该适用于导出。在下载页面上查找“开发版本”:

http://www.inkscape.org/en/download/

一种简单的解决方案是导出为 PDF,然后在生成的 PDF 上使用Ghostcript使用来自 Openclipart 的草莓图像和命令

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m \
   -r72 -dGraphicsAlphaBits=1 \
   -sOutputFile=image.png image.pdf 

我得到以下结果。

非反抗草莓图像。 放大非反抗草莓图像。

如果您的图像还包含文本,您也需要添加-dTextAlphaBits=1将 更改-r72为不同的值以重新缩放图像。

Inkscape 0.91 及更高版本具有切换抗锯齿的能力。这可以通过“文档属性”窗口 (Shift+Ctrl+D) 访问。当打开时,这是默认设置,三角形数组的这个图像看起来像这样。

在此处输入图像描述

关闭时,图像看起来更平滑。

在此处输入图像描述

正如其他人所提到的,这目前对 png 导出没有影响。抗锯齿仍然打开,三角形之间的间隙仍然可见。

当您禁用抗锯齿功能时,Inkscape 正在执行的操作是添加shape-rendering="crispEdges"到文件中。在文本编辑器中打开您的 SVG,然后查看第 19 行附近的某个地方,您应该会看到它。

在此处输入图像描述

幸运的是,在将 SVG 导入 GIMP 时会读取并遵守此标签。GIMP 可以导入 SVG 并设置导入分辨率,这意味着您可以在导入时将 png 缩放为所需的大小。它会将其裁剪到页面边界。

在此处输入图像描述

您现在可以保存图像,并且将禁用抗锯齿。

在此处输入图像描述

这已被多次报告为错误:

您还可以使用 SVG 的shape-rendering属性使边缘清晰。

在 SVG XML 中看起来像:

<svg:something shape-rendering="crispEdges" ... />

在 Inkscape 的 UI 中,您可以使用XML 编辑器( Ctrl++ Shift)手动设置X,如下图所示:

Inkscape XML 编辑器

选择该属性应应用于的节点。在这里,我将其应用于一组路径。该属性显示在右侧。要添加它,复制您在右下角看到的文本,然后按Set