2020年8月18日火曜日

【Python】一括で svg を png に変換する。

Azure のアイコンが svg で用意されており、パワポで読み込めなかった。

 仕事の資料を作成するにあたって、Azureのアイコンを使いたかった。しかし、公式には svg のアイコンしかない。そのため、プログラム作ってpng画像を作ることにした。

Azure icon png(200 x 200) ここにpng変換後のアイコンを共有しておく。

以下にpng変換時のソースを貼っておく。

svg → png 変換ソース

 本プログラムは一括でsvg -> png 変換を行う。公式のsvgのzipファイルを解凍し、「AI + Machine Learning」フォルダがあるところと同一フォルダで本プログラムを動作させる。

python 3.7.8で動作確認済み。事前準備として、ライブラリの cairosvg をインストールする必要がある。

pip install cairosvg

 本体プログラムは以下。

import os.path
import cairosvg
import os

def main():
    for folder in os.listdir('.'):
        if os.path.isdir( folder ):
            for file in os.listdir( folder ):
                name = file.split('.svg')[0]
                url = folder + r'\{0}.svg'.format(name)
                write_to = folder + r'\{0}.png'.format(name)
                cairosvg.svg2png( url=url
                                , write_to=write_to
                                , output_width=200
                                , output_height=200 )  # svg -> png 本体
                print(file)

if __name__ == "__main__":
    main()

 svg が不要なら、以下のプログラムを実行すると削除できる。

import os.path
import cairosvg
import os

def main():
    for folder in os.listdir('.'):
        if os.path.isdir( folder ):
            for file in os.listdir( folder ):
                if '.svg' in file:
                    rfile = folder + r'\{0}'.format( file )
                    os.remove( rfile )
                    print(file)

if __name__ == "__main__":
    main()

0 件のコメント:

コメントを投稿