以前、選択範囲を別レイヤーに切り出すスクリプトを組みました。

より、シンプルなスクリプトに修正してみました。

Python-Fuで選択範囲を別レイヤーに切り出し
一枚の絵をパーツごとに切り出してレイヤー化する作業用に作成しました。手動で実行する手順の自動化で、以前にも同じ目的のスクリプトを作りましたが別手順になります。#!/usr/bin/env python# coding: utf8from g...
より、シンプルなスクリプトに修正してみました。
#!/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つのプロシージャで機能を実現しています。前回のスクリプトと比べて大分行数が減りました。
 
  
  
  
  

コメント