mieki256's diary



2018/02/02(金) [n年前の日記]

#1 [gimp][python] GIMPのScript-fuスクリプトをPython-fuで書き直し中

昨日 github にアップロードした Script-fu を、Python-fu で書き直し中。

Script-fu をいくつか書いてきたものの、lisp系はどうも分からん…。分からんから、なかなか改造・改良のしようがない…。せめて Python で書いてあれば、もうちょっとサクサクと改良できるのではないか。と思えてきたので、この際書き直そうと。

気のせいかもしれないけれど、Script-fu (TinyScheme)で処理するより、Python-fu で処理するほうがなんとなく体感的に処理が速いような気がする。いや、気のせいだと思うけど。たぶん気のせい。

選択範囲の中で矩形塗り潰し。 :

せっかくだから、Python-fu に書き直すついでに、各矩形内に描画するパターンの種類も増やそうとしているのだけど。既に選択範囲がある状態で、その中で矩形塗り潰しをするには、どんなスクリプトを書いたらいいのやら。GIMPに矩形塗り潰し機能があれば楽なのだけど、ちょっと見つからない感じで。

現在の選択範囲をどこかに記憶しておいてから、新たに矩形の選択範囲を作って、塗り潰しをして、先ほど記憶しておいた以前の選択範囲を再設定…するしかないのかな。選択範囲はチャンネルに保存・読み出しができるけど、使い終わったチャンネルを削除する命令が見つからない…。いや、コレかな…。たぶんコレだろう…。

>>> # python-fu を使う際のお約束
>>> from gimpfu import *

>>> # 画像を取得
>>> image = gimp.image_list()[0]
>>> image
<gimp.Image '[名称未設定]'>

>>> # レイヤーを作成・追加
>>> layer = gimp.Layer(image, "Layer Name", image.width, image.height, RGBA_IMAGE, 100, NORMAL_MODE)
>>> image.add_layer(layer, 0)

>>> # 矩形の選択範囲を作成。x,y,w,hを指定
>>> pdb.gimp_image_select_rectangle(image, 2, 16, 32, 256, 512)

>>> # 選択範囲をチャンネルに保存
>>> channel = pdb.gimp_selection_save(image)
>>> channel
<gimp.Channel '選択マスク コピー'>

>>> # 矩形の選択範囲を作成。
>>> pdb.gimp_image_select_rectangle(image, 2, 24, 48, 128, 256)

>>> # 描画色を指定。python-fuの場合、0.0 - 1.0 で指定
>>> gimp.set_foreground(1.0, 0.5, 0.0)

>>> # 塗り潰し
>>> pdb.gimp_edit_fill(layer, FOREGROUND_FILL)

>>> # 選択範囲解除
>>> pdb.gimp_selection_none(image)

>>> # 選択範囲をチャンネルから読み出す
>>> pdb.gimp_selection_load(channel)

>>> # チャンネルを削除
>>> pdb.gimp_image_remove_channel(image, channel)

もっと上手い方法がありそうな気もする。

以上です。

過去ログ表示

Prev - 2018/02 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project