如何制作 stencil?

图像 stencil 是根据图像创建的简化轮廓或 stencil ,通常用于绘画或涂鸦等艺术目的。此过程涉及将图像的细节转换为可以轻松追踪或复制的基本形状和线条。 Aspose.SVG for Python via .NET 允许您以编程方式或使用在线 stencil 制作工具创建图像 stencil 。在这里,您可以在线或使用 Python 对图像进行矢量化并应用 stencil 技术。


图像 stencil 制作工具

Image Stencil Maker 支持 JPEG、JPG、PJP、PJPEG、PNG、BMP、ICO、GIF、TIFF、SVG 和其他图像格式。它使用颜色量化算法来减少图像中的颜色数量,将图像转换为 SVG,并在线创建 stencil 艺术。使用我们的免费 stencil 制作工具轻松创建令人惊叹的 stencil 艺术!



图像 stencil 将普通图片或照片转换为轮廓图像,非常适合创建具有涂鸦效果的 stencil 艺术。以下是将照片或图像转换为 stencil 的基本步骤:

  1. 将图像转换为灰度(可选) 您可以将图像转换为灰度或减少颜色数量以量化它。
  2. 量化图像颜色 此步骤通过减少图像的调色板来简化图像。量化后,您可以下载或矢量化结果以获得 stencil 的轮廓。
  3. 绘制 stencil 绘制 stencil 有三个选项:
  • None - 所有矢量化形状都已填充。
  • Auto - 形状未填充,边框保留原始颜色。
  • MonoColor - 形状未填充,边框采用预定义颜色。



Python 中的图像 stencil

Aspose.SVG for Python via .NET API 提供了类和方法,允许您实现图像矢量化过程,并在将图像保存为 SVG 矢量格式之前使用各种选项来预处理图像。除了控制矢量化参数(例如 trace_smoother, error_threshold, max_iterations, path_builder 等)之外,您还可以配置图像 stencil 的绘制。

在下面的代码示例中,我们将图像转换为矢量并应用 stencil 技术来制作 stencil:


用 Python 制作 stencil

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(1)
path_builder.error_threshold = 30.0
path_builder.max_iterations = 30

vectorizer = ImageVectorizer()
vectorizer.configuration.path_builder = path_builder
vectorizer.configuration.colors_limit = 10
vectorizer.configuration.line_width = 1.0

# Configuration for image stencil
stencil_config = StencilConfiguration()
stencil_config.type = StencilType.MONO_COLOR
stencil_config.color = Color.from_rgb(0, 0, 255)
vectorizer.configuration.stencil = stencil_config

# Vectorize an image
src_file = "image.png"
with vectorizer.vectorize(os.path.join(input_folder, src_file)) as document:
    output_file = os.path.join(output_folder, "image-stencil.svg")
    document.save(output_file)


使用 Python 制作 stencil 的步骤

要矢量化图像并使用 Aspose.SVG Python 库制作 stencil,您应该执行以下几个步骤:

  1. aspose.svgaspose.svg.imagevectorization 和其他必要的包中导入必要的模块和类。
  2. 创建 BezierPathBuilder 类的实例来定义路径构建策略。
    • 使用 ImageTraceSmoother 的实例设置 trace_smoother 属性的值。此参数(严重性)控制跟踪路径的平滑程度。
    • 设置BezierPathBuildererror_threshold属性的值。此参数定义使用矢量路径近似位图形状的可接受误差范围。
    • 指定BezierPathBuilder对象的max_iterations属性的值。此设置确定矢量化过程中路径优化算法允许的最大迭代次数,即算法尝试提高路径精度的次数。
  3. 创建 ImageVectorizer 类的实例。 ImageVectorizer 是用于将图像转换为矢量图形的主类。
    • path_builder 配置(之前定义)分配给 vectorizer 对象。这意味着矢量化器将使用path_builder中指定的设置来创建和优化路径。
    • 设置 ImageVectorizerConfiguration 类的 colors_limit 属性。此参数确定矢量化图像中使用的最大颜色数。这会影响矢量化器处理颜色简化的方式并减少输出中唯一颜色的数量。
    • 指定ImageVectorizerConfiguration类的line_width属性。此设置确定生成的 SVG 文件中矢量路径的宽度。
  4. 初始化 StencilConfiguration 类的新实例,该实例保存 stencil 创建过程的设置。
    • 将 stencil type属性设置为MONO_COLOR。这将创建一个轮廓具有单一、统一颜色的 stencil。
    • 设置 stencil 轮廓的color属性。 Color.from_rgb(0, 0, 255) 方法使用 RGB 值(红色:0,绿色:0,蓝色:255)创建表示蓝色的颜色对象。
    • 将 stencil 配置应用到矢量化器。
  5. 使用 vectorize() 方法对指定文件中的图像进行矢量化。
  6. 使用生成的SVGDocument上的 save() 方法将矢量化图像保存为 SVG 文件。

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


常问问题

1. 如何矢量化 Image?

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

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)