【Python】SVGをPNGに変換できるSvglibのインストール

【Python】SVGをPNGに変換できるSvglibのインストール プログラミング

「SVGをPNG・JPG・GIFに変換したい」
「PythonでSVGを処理する必要がある」

このような場合には、Svglibがオススメです。
この記事では、SVGをPNGに変換できるSvglibのインストールについて解説しています。

本記事の内容

  • Svglibとは?
  • Svglibのシステム要件
  • Svglibのインストール
  • Svglibの動作確認

それでは、上記に沿って解説していきます。

Svglibとは?

Svglibとは、SVGの読み込み・変換を行うPythonライブラリです。
そして、SvglibはSVGをReportLab Drawingオブジェクトへ変換がすることができます。

ReportLabについては、次の記事で説明しています。

ReportLabは、PDF生成のためのライブラリです。
このことからわかるように、SvglibはSVGをPDFにも変換できます。

Svglibは、SVGをPNG、JPG、GIFと言った画像に変換可能です。
それに加えて、SvglibはSVGをPDFやEPSなどにも変換できます。

また、Svglibはpure-Pythonで開発されています。
そのため、導入が容易に行えるというメリットがあります。

以上、Svglibについて説明しました。
次は、Svglibのシステム要件を説明します。

Svglibのシステム要件

現時点(2022年8月)でのSvglibの最新バージョンは、1.4.1となります。
この最新バージョンは、2022年8月6日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.7
  • Python 3.8
  • Python 3.9
  • Python 3.10

このサポート状況は、以下のPython公式開発サイクルに準じています。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

未だにPython 3.6をサポート対象に含めるライブラリが多くあります。
しかし、SvglibはPython 3.6はもう切り捨てています。

地味ですが、こういうことをちゃんとやるライブラリは少ないです。
その点からも、Svglibへの信頼性はより高まると言えます。

まとめると、Svglibのシステム要件はあってないようなモノです。
Python 3.7以降であれば、基本的にはOSも問わないと言えます。
ピュアPythonである以上は、ある意味当然となります。

以上、Svglibのシステム要件を説明しました。
次は、Svglibのインストールを説明します。

Svglibのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.10.2

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.2.2
setuptools 63.4.1
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Svglibのインストールです。
Svglibのインストールは、以下のコマンドとなります。

pip install svglib

Svglibのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package      Version
------------ -------
cssselect2   0.6.0
lxml         4.9.1
Pillow       9.2.0
pip          22.2.2
reportlab    3.6.11
setuptools   63.4.1
svglib       1.4.1
tinycss2     1.1.1
webencodings 0.5.1
wheel        0.36.2

Svglibは、Pillowに依存しているのですね。
あとは、Web関連のパッケージにも依存していることを確認できます。

以上、Svglibのインストールを説明しました。
次は、Svglibの動作確認を説明します。

Svglibの動作確認

Svglibの動作確認を行います。
Svglibの利用方法は、次の2パターンが存在します。

  • コマンドラインツール
  • Python API

今回は、Python APIとしての利用方法を説明します。
コマンドラインツールは、svg2pdfというコマンドです。

名前からわかるように、svg2pdfはSVGをPDFに変換します。
その用途よりは、PNGなどの画像への変換の方が需要はあるはずです。

ということで、Python APIとしての動作確認を行います。
まずは、SVGを用意しましょう。

今回は、以下のページからSVGのロゴ(SVG_logo.svg)をダウンロードします。
https://ja.wikipedia.org/wiki/Scalable_Vector_Graphics

このSVGをPNGに変換してみましょう。
そのためのコードは、以下。

from svglib.svglib import svg2rlg
from reportlab.graphics import renderPM

file_path = "SVG_logo.svg"

drawing = svg2rlg(file_path)
renderPM.drawToFile(drawing, "SVG_logo.png", fmt="PNG")

上記を実行すると、次の画像がディレクトリ上に作成されます。

SVG_logo.png

以上、Svglibの動作確認を説明しました。

タイトルとURLをコピーしました