「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.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年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の動作確認を説明しました。