以前、選択範囲を別レイヤーに切り出すスクリプトを組みました。
より、シンプルなスクリプトに修正してみました。
Python-Fuで選択範囲を別レイヤーに切り出し
一枚の絵をパーツごとに切り出してレイヤー化する作業用に作成しました。 手動で実行する手順の自動化で、以前にも同じ目的のスクリプトを作りましたが別手順になります。 #!/usr/bin/env python # coding: utf8 fr...
より、シンプルなスクリプトに修正してみました。
#!/usr/bin/env python
# coding: utf8
from gimpfu import *
from array import array
# 選択範囲で切り取り新規レイヤーにコピー
def plugin_main(image, layer):
# 選択範囲が無い場合終了
(non_empty,x1,y1,x2,y2) = pdb.gimp_selection_bounds(image)
if (non_empty == 0):
return
# レイヤーにアルファチャンネルを追加
pdb.gimp_layer_add_alpha(layer)
# 選択部分を切り取り
if pdb.gimp_edit_cut(layer) == 0:
return
# 貼り付け(フローティング)
floating_layer = pdb.gimp_edit_paste(layer, 0)
# フローティングレイヤーをレイヤーに変換
pdb.gimp_floating_sel_to_layer(floating_layer)
# フィルターに登録
register("CutToNewLayer", "", "", "", "", "",
"CutToNewLayer",
"RGB*",
[
(PF_IMAGE, "image", "Input image", None),
(PF_DRAWABLE, "drawable", "Drawable", None)
],
[],
plugin_main,
menu = "<Image>/Filters")
main()
前回はレイヤーを切り出すのであればレイヤー関連のプロシージャを使うという固定観念から作ったスクリプトですが、今回はキーボードやマウス操作などの編集関連のプロシージャを使っています。
内容は範囲選択された状態で「切り取り」⇒「貼り付け」⇒フローティング選択範囲を「新しいレイヤーを生成」の3つのプロシージャで機能を実現しています。前回のスクリプトと比べて大分行数が減りました。
コメント