Vectorize an Image – PNG to SVG

Vectorization involves converting bitmaps into mathematical curves and geometric shapes, which are then saved as SVG files. Aspose.SVG for Python via. NET API offers a high-speed library for various SVG parsing tasks, including image vectorization. Aspose.SVG offers versatile options for converting PNG to SVG, both programmatically and online. Here, we’ll show you how to convert PNG to SVG using the Aspose.SVG Python library. On the other hand, online Image Vectorizer allows you to vectorize images in real-time, providing fast and high-quality conversions. Try the Image Vectorizer right now!


Online Image Vectorizer

Ready to transform your pixel art into crisp vector graphics? Image Vectorizer is designed to convert images, such as PNG to SVG. After vectorization, all graphical elements, such as geometric shapes, Bezier curves, arcs, paths, and lines, are saved as vector images in SVG files. Image Vectorizer supports a variety of bitmap formats, including JPEG, JPG, PNG, BMP, GIF, TIFF, and ICO. Easily manipulate your vectorized SVG image with interactive controls linked to vectorization options. Convert image to SVG and get scalable, crisp vector art today!





How to Vectorize PNG in Python

Aspose.SVG for Python via .NET API provides classes and methods that allow you to convert PNG to SVG and work with various options for pre-processing images before saving them in vector format. You can control the following vectorization parameters: trace_smoother, error_threshold, max_iterations, path_builder, stencil, etc. In the following code example, we convert image to SVG with explicitly specified vectorization options:


Convert Image to SVG in Python

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}")


Steps to Convert PNG to SVG Using Python

To vectorize PNG with Aspose.SVG Python library, you should follow a few steps:

  1. Import the necessary modules and classes from the aspose.svg, aspose.svg.imagevectorization, and other necessary packages.
  2. Create an instance of the BezierPathBuilder class to define the path-building strategy.
    • Set the trace_smoother attribute using an instance of ImageTraceSmoother with a severity level of 2. The severity level indicates the extent of smoothing applied to the paths.
    • Set the value for the error_threshold property of BezierPathBuilder. This parameter defines the acceptable error margin for approximating the bitmap shapes with vector paths. Lower values result in more accurate approximations, while higher values allow for more simplification.
    • Specify the value for the max_iterations property of the BezierPathBuilder object. This setting determines the maximum number of iterations allowed for the path optimization algorithm during vectorization, which is how many times the algorithm will attempt to improve the path accuracy.
  3. Create an instance of the ImageVectorizer class. The ImageVectorizer is the main class used to convert images to vector graphics.
    • Assign the path_builder configuration (defined earlier) to the vectorizer object. This means the vectorizer will use the settings specified in the path_builder for path creation and optimization.
    • Set the colors_limit property of the ImageVectorizerConfiguration class. This parameter determines the maximum number of colors that will be used in the vectorized image. This affects how the vectorizer handles color simplification and reduces the number of unique colors in the output.
    • Specify the line_width property of the ImageVectorizerConfiguration class. This setting determines the width of the vector paths in the resulting SVG file. It controls the stroke width of paths created during vectorization.
  4. Use the vectorize() method to vectorize PNG from the specified file.
  5. Save the vectorized image as an SVG file using the save() method on the resulting SVGDocument.

Image Vectorization is the process of converting raster images into vector graphics, such as Bezier curves, paths, and lines. In the documentation chapter Image and Text Vectorization , you will find detailed information about image vectorization, including a description of the process and available options. Learn how to vectorize raster images into an SVG document. The chapter also includes several examples demonstrating the functionalities of the Aspose.Svg.ImageVectorization namespace and the effects of configuration properties on the results.

Aspose.SVG offers a Free Online Image Vectorizer that allows you to convert JPG, JPEG, PNG, BMP, TIFF, GIF, and ICO bitmap images into vector graphics. With this application, you can apply various options to achieve the perfect result. Save time and experience the benefits of vector graphics by trying out this Image Vectorizer today!


FAQ

1. How can I vectorize PNG?

Aspose.SVG allows you to convert PNG to SVG in any way – online or programmatically. For example, you can vectorize PNG in real-time using Online Image Vectorizer that converts your images quickly and with high quality. On other hand, you can use Aspose.SVG to vectorize PNG programmatically.

2. What is a raster to vector conversion?

The process of image conversion from raster to vector is called image vectorization. It is a complex computational process that converts a bitmap image made up of pixels into a vector image made up of lines, curves, and other geometric shapes.

3. What is the image vectorization for?

Vector images are essential for any professional who works with drawings, graphics, or sketches. Many designers, printers, architects, and artists often choose to work with sketches or drawings as vector images. And they have good reasons! Unlike bitmap graphics, vector arts are resizable and scalable without losing any quality, and they will still display just as clearly. Also, vectorization can be used to update or recover images.
Vector images are what you need to produce banners, logos, maps, signs, embroideries, engravings, graphs, blueprints, etc.

4. How is the vectorization occur?

The vectorization process uses color image quantization – a technique that reduces the number of different colors used in an image, intending that the new image should be as visually similar as possible to the original one. Then, the Vectorizer replaces all the same colored spots or pixels with geometric shapes or curves using a set of contour tracing algorithms. The final step is to convert the tracing points to SVG path lines and Bezier curves and add them to the SVG document.



Get Started with Python API

If you want to develop scalable vector graphics and their applications, install our flexible, high-speed Aspose.SVG for Python via .NET API. pip is the easiest way to download and install Aspose.SVG for Python via .NET API. To do this, run the following command:

pip install aspose-svg-net

For more details about Python library installation and system requirements, please refer to Aspose.SVG Documentation.

Other Supported Image Vectorizers

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)