矢量化图像 – PNG 到 SVG

矢量化涉及将位图转换为数学曲线和几何形状,然后将其保存为 SVG 文件。 Aspose.SVG for Python via .NET API 为各种 SVG 解析任务(包括图像矢量化)提供了一个高速库。 Aspose.SVG 提供了以编程方式和在线方式将 PNG 转换为 SVG 的多种选项。在这里,我们将向您展示如何使用 Aspose.SVG Python 库将 PNG 转换为 SVG。另一方面,在线图像矢量化器允许您实时矢量化图像,提供快速和高质量的转换。立即尝试图像矢量化器!


在线图像矢量化器

准备好将您的像素艺术转换为清晰的矢量图形了吗?图像矢量化器旨在将图像(例如 PNG)转换为 SVG。矢量化后,所有图形元素(例如几何形状、贝塞尔曲线、圆弧、路径和直线)都将保存为 SVG 文件中的矢量图像。 Image Vectorizer 支持多种位图格式,包括 JPEG、JPG、PNG、BMP、GIF、TIFF 和 ICO。使用链接到矢量化选项的交互式控件轻松操作矢量化 SVG 图像。立即将图像转换为 SVG 并获得可扩展、清晰的矢量艺术!





如何在 Python 中矢量化 PNG

Aspose.SVG for Python via .NET API 提供了类和方法,允许您将 PNG 转换为 SVG,并在将图像保存为矢量格式之前使用各种选项来预处理图像。您可以控制以下矢量化参数:trace_smoothererror_thresholdmax_iterationspath_builderstencil 等。在下面的代码示例中,我们使用显式指定的矢量化选项将图像转换为 SVG:


在 Python 中将图像转换为 SVG

import os
from aspose.svg import *
from aspose.svg.drawing import *
from aspose.svg.rendering.image import *
from aspose.svg.imagevectorization import *

# Setup directories
input_folder = "data/"
output_folder = "output/"
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# Configuration for image vectorization
path_builder = BezierPathBuilder()
path_builder.trace_smoother = ImageTraceSmoother(2)  # Example severity level
path_builder.error_threshold = 30.0  # Example threshold
path_builder.max_iterations = 30  # Example max iterations

vectorizer = ImageVectorizer()
vectorizer.configuration.path_builder = path_builder
vectorizer.configuration.colors_limit = 25  # Example color limit
vectorizer.configuration.line_width = 1.0  # Example line width

# Vectorize PNG
src_file = "image.png"  # Specify the sourse image file
with vectorizer.vectorize(os.path.join(input_folder, src_file)) as document:
    output_file = os.path.join(output_folder, "vectorized-image.svg")  # Specify the output SVG file
    document.save(output_file)

print(f"Vectorized image saved to {output_file}")


使用 Python 将 PNG 转换为 SVG 的步骤

要使用 Aspose.SVG Python 库对 PNG 进行矢量化,您应该遵循以下几个步骤:

  1. aspose.svgaspose.svg.imagevectorization 和其他必要的包中导入必要的模块和类。
  2. 创建 BezierPathBuilder 类的实例来定义路径构建策略。
    • 使用 ImageTraceSmoother 实例设置trace_smoother属性,severity级别为 2。
    • 设置BezierPathBuildererror_threshold属性的值。此参数定义使用矢量路径近似位图形状的可接受误差范围。较低的值会产生更准确的近似值,而较高的值会带来更多的简化。
    • 指定BezierPathBuilder对象的max_iterations属性的值。此设置确定矢量化过程中路径优化算法允许的最大迭代次数,即算法尝试提高路径精度的次数。
  3. 创建 ImageVectorizer 类的实例。 ImageVectorizer 是用于将图像转换为矢量图形的主类。
    • path_builder 配置(之前定义)分配给 vectorizer 对象。这意味着矢量化器将使用path_builder中指定的设置来创建和优化路径。
    • 设置 ImageVectorizerConfiguration 类的 colors_limit 属性。此参数确定矢量化图像中使用的最大颜色数。这会影响矢量化器处理颜色简化的方式并减少输出中唯一颜色的数量。
    • 指定ImageVectorizerConfiguration类的line_width属性。此设置确定生成的 SVG 文件中矢量路径的宽度。它控制矢量化过程中创建的路径的笔画宽度。
  4. 使用 vectorize() 方法对指定文件中的 PNG 进行矢量化。
  5. 使用生成的SVGDocument上的 save() 方法将矢量化图像保存为 SVG 文件。

图像矢量化是将光栅图像转换为矢量图形(例如贝塞尔曲线、路径和直线)的过程。在文档章节 矢量化 – 基本概述 中,您将找到有关图像矢量化的详细信息,包括过程和可用选项的描述。了解如何将光栅图像矢量化为 SVG 文档。本章还包括几个示例,演示 Aspose.Svg.ImageVectorization 命名空间的功能以及配置属性对结果的影响。

Aspose.SVG 提供免费的在线 图像矢量化器 ,允许您将 JPG、JPEG、PNG、BMP、TIFF、GIF 和 ICO 位图图像转换为矢量图形。通过此应用程序,您可以应用各种选项来获得完美的结果。立即尝试此图像矢量化器,节省时间并体验矢量图形的好处!


常问问题

1. 如何矢量化 PNG?

Aspose.SVG 允许您以任何方式将 PNG 转换为 SVG - 在线或以编程方式。例如,您可以使用在线 Image Vectorizer 实时对 PNG 进行矢量化,它可以快速且高质量地转换您的图像。另一方面,您可以使用 Aspose.SVG for .NET API 以编程方式对 PNG 进行矢量化。

2. 图像矢量化有什么用?

矢量图像对于任何使用绘图、图形或草图的专业人士来说都是必不可少的。许多设计师、印刷商、建筑师和艺术家经常选择使用草图或绘图作为矢量图。他们有充分的理由!与位图图形不同,矢量图可以调整大小和可扩展性而不会损失任何质量,并且它们仍然可以清晰地显示。此外,矢量化可用于更新或恢复图像。
矢量图像是您制作横幅、徽标、地图、标志、刺绣、雕刻、图表、蓝图等所需的。

3. 什么是光栅到矢量的转换?

图像从光栅到矢量的转换过程称为图像矢量化。这是一个复杂的计算过程,它将由像素组成的位图图像转换为由线条、曲线和其他几何形状组成的矢量图像。

4. 矢量化是如何发生的?

矢量化过程使用彩色图像量化 - 一种减少图像中使用的不同颜色数量的技术,旨在使新图像在视觉上尽可能与原始图像相似。 然后,矢量化器使用一组轮廓追踪算法将所有相同颜色的点或像素替换为几何形状或曲线。 最后一步是将跟踪点转换为 SVG 路径线和贝塞尔曲线,并将它们添加到 SVG 文档中。



Python API 入门

如果您想开发可扩展矢量图形及其应用程序,请安装我们灵活、高速的 Aspose.SVG for Python via .NET API。 pip 是下载和安装 Aspose.SVG for Python via .NET API 的最简单方法。为此,请运行以下命令:

pip install aspose-svg-net

有关Python库安装和系统要求的更多详细信息,请参阅 Aspose.SVG文档

其他支持的图像矢量化器

JPG to SVG (JPEG Image)
PNG to SVG (Portable Network Graphics)
Image to SVG (Raster Image)
BMP to SVG (Microsoft Windows Bitmap)
Image Stencil (Stencil Maker)