SVG to PNG Conversion with Wand and ImageMagick in Python

When working with vector graphics, SVG files are often the format of choice. However, situations arise where you need rasterized versions of these files, such as PNGs, for compatibility or performance reasons.

This blog post will guide you through the process of converting SVG files to PNG using the Wand library in Python, while leveraging ImageMagick.


Setup: Installing the Required Tools

1. Install Wand

pip install Wand

2. Install ImageMagick

Download and install ImageMagick from here. During installation:

  • Ensure you check the box for "Install legacy utilities".
  • Add ImageMagick's bin directory to your system's PATH environment variable.

Step-by-Step Code: Converting SVG to PNG

Once the setup is complete, you can use the following Python script to batch convert all SVG files in a folder to PNG:

import os
from wand.image import Image

# Path to the folder containing SVG files
root_folder = "."

# Loop through all files in the folder
for filename in os.listdir(root_folder):
    if filename.endswith(".svg"):
        svg_path = os.path.join(root_folder, filename)
        png_path = os.path.join(root_folder, f"{os.path.splitext(filename)[0]}.png")
        
        # Convert SVG to PNG
        with Image(filename=svg_path) as img:
            img.format = 'png'
            img.save(filename=png_path)
        print(f"Converted {filename} to {png_path}")

print("All SVGs have been converted!")

How It Works

  1. File Iteration: The script loops through all files in the specified folder and processes only those with the .svg extension.
  2. SVG to PNG Conversion: The Image class from Wand loads the SVG file, sets its format to PNG, and saves it with the same name but a .png extension.
  3. Output: PNG files are saved in the same directory as their SVG counterparts.

Author:
Salome Grasland
Powered by The Information Lab
1st Floor, 25 Watling Street, London, EC4M 9BR
Subscribe
to our Newsletter
Get the lastest news about The Data School and application tips
Subscribe now
© 2024 The Information Lab