PythonスクリプトでのGIMP Editブレンドは、ブレンドツールより異なるブレンドを生成します

StackOverflow https://stackoverflow.com//questions/23058643

  •  26-12-2019
  •  | 
  •  

質問

私は再サイズを和らげるスクリプトを書いています。

2必要な画像と結果をここにアップロードしました。 http://imgur.com/a/bjgia

私はすべて実行することを管理しましたが、あるポイントは失敗しました。ブレンディングコマンドPDB.gimp_edit_blendコマンドに問題が縮小され、レイヤマスクを透明な背景にブレンドする代わりに、不透明な勾配を作成します。

image = gimp.image_list()[0]  #image is 237x300 png like above
pdb.gimp_image_resize(image, 300, 300, -100, 0)
fg_layer = pdb.gimp_image_get_active_layer(image)
mask = pdb.gimp_layer_create_mask(fg_layer,ADD_WHITE_MASK)
pdb.gimp_image_add_layer_mask(image, fg_layer, mask)

# from here it goes wrong, if I skip this step than I can get the correct result
# using the gimp blent tool from the gui using the same settings as here
pdb.gimp_edit_blend(fg_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
.

コード全体はここにあります。 http://pastie.org/9079343

私が間違っていることは何ですか? たくさんありがとう

役に立ちましたか?

解決

あなたのエラーはあなた自身のコードでほとんどありません - あなたはブレンディング機能を通過しています MASKの代わりにfg_layerは、

pdb.gimp_edit_blend(fg_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
                    ^^^^^^^^
.

代わりに、描画可能なパラメータとしてマスクを渡すのと同じ呼び出しを行います(「マスク」変数にすでに持っています):

pdb.gimp_edit_blend(mask, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top