GIMPパスをSVG形式で一括エクスポートするPython-Fuスクリプト

GIMP コンピュータ
GIMP
GIMPのパスをsvgファイルとしてエクスポートすることが出来るようなのでスクリプトを作成してみました。
出力先はxcfファイルが保存されたディレクトリに”xcfベース名\vectors\パス名.svg”形式で作成されます。(xcfファイル名が日本語の場合失敗しました。)
Windows版GIMPのPython-Fuでos.mkdir()で文字化け
日本語を含むパスをos.mkdir()でディレクトリを作ろうとすると文字化けが発生しました。 ただ、日本語を含むパスの画像ファイルを開いたり保存したりすることは出来るので、根本的な解決は自分には無理そうに感じました。 アルファベットの場合は...

スクリプト

#!/usr/bin/env python
# coding: utf8
# 
# 全てのパスをエクスポート
# 
from gimpfu import *
from array import array
from time import time
import os
def plugin_main(image, layer):
    # プログレスバー初期化
    gimp.progress_init("ExportAllPath")
    # 出力先のディレクトリの作成
    dir_path, _ = os.path.splitext(image.filename)
    vector_dir = os.path.join(dir_path, 'vectors')
    if not(os.path.isdir(dir_path)):
        os.mkdir(dir_path)
    if not(os.path.isdir(vector_dir)):
        os.mkdir(vector_dir)
    # パスの一覧を取得
    num_paths, path_list = pdb.gimp_path_list(image)
    try:
        for i in range(num_paths):
            svg_path = os.path.join(vector_dir, image.vectors[i].name + '.svg')
            # svg形式でエクスポート
            pdb.gimp_vectors_export_to_file(image, svg_path, image.vectors[i])
            # プログレスバー更新
            gimp.progress_update(float(i)/float(num_paths-1))
    finally:
        # レイヤーの更新
        layer.flush()
        layer.update(0,0,w,h)
register("ExportAllPath", "", "", "", "", "",
    "パス一括エクスポート", 
    "*",
    [
    (PF_IMAGE, "image", "Input image", None),
    (PF_DRAWABLE, "drawable", "Drawable", None),
    ],
    [],
    plugin_main,
    menu = "<Image>/Filters/My")
main()
Webサイトで使うためにSVG画像を作成するアプリケーションとしてInkscapeを使おうと思います。Inkscapeの操作方法をYoutubeの動画を見ながら学習中ですが、ある程度使えるようになるまで代替方法を考えてみました。
試しにGIMPのテキストでサイト名を入力し「テキストからパスを生成」を実行しスクリプトでSVGファイルをエクスポートしてみました。
以下svg部分を貼り付けた画像。

アウトラインだけだと味気ないので黒で塗りつぶし。画像の幅と高さを大きめに変更してみる。

以上

コメント