[Python] Convert SVG to PNG with Python on Windows

Discussão em 'Python' iniciado por Stack, Março 23, 2025.

  1. Stack

    Stack Membro Participativo

    Question: Which reproducible process can enable Windows Python users to render a SVG image into PNG?


    Many questions/answers (such as Convert SVG to PNG in Python and Server-side SVG to PNG (or some other image format) in python, which are not duplicates for the reasons explained below) explain how to convert a SVG to PNG with Python.

    Unfortunately, none of them are ready-to-use for Python + Windows. After more than 20 minutes, and many different attempts, I'm still unable to do it. More details about failing attempts:


    • Installing cairo on Windows is not straightforward, we have to use Gohlke's binaries Intalling pycairo with Python 3.7 on Windows :

      pip install pycairo-1.20.0-cp37-cp37m-win_amd64.whl

    • Even once cairo is installed, rsvg (from main answers of Server-side SVG to PNG (or some other image format) in python, Convert SVG to PNG in Python) is not available for Windows:

      pip install rsvg # or pyrsvg
      > ERROR: No matching distribution found for pyrsvg

    • Solutions with svglib or reportlab don't work out-of-the-box on Python3 + Windows:

      from svglib.svglib import svg2rlg
      from reportlab.graphics import renderPDF, renderPM
      drawing = svg2rlg("a.svg")
      renderPM.drawToFile(drawing, "file.png", fmt="PNG")


      Indeed:

      AttributeError: 'Image' object has no attribute 'fromstring'

    So a solution - specific for Windows - would be helpful.

    Continue reading...

Compartilhe esta Página