2016-04-20 10 views
1

私はpython-fuスクリプトを持っています。これは主に動作しています。レイヤーをスキャンして色を探し、長方形でその色の連続した領域を選択し、選択された別のレイヤー内のイメージの一部をコピーし、別のファイルに保存します。すべての良い。「クリア」が機能しないのはなぜですか?

これで、矩形の選択を解除しなければならないため、別のセットの一部として再度選択されず、スキャンが開始され、保存する次の隣接する矩形ブロックを見つけることができます。

残念ながら、スキャンがクリアされた領域を横切っていることがわかります。デバッグ出力は、まだ色があると考えていることを示しています。私が見ることができるという事実にもかかわらず、その領域は透明です。だから、私はgimpに更新を知らせるステップを欠いているに違いない。

私は、私は次のようにそれを持っていたと思った:

pdb.gimp_edit_clear(layer) 
pdb.gimp_drawable_update(layer,0,0,width,height) 

gimp_edit_clearは私が探してる層に明確な選択をして - 私はそれが起こる参照 - しかしgimp_drawable_updateは何もしていないようですこれは、クリアされた場所をループが進むと、古い色がまだ残っていると報告するためです。

私には何が欠けていますか?

答えて

1

問題は明確ではなく、それが何をしたのかを理解しています。私はそれがRGBA(0,0,0,0)であるもともと透明な領域の自然な色に戻す領域を消去したと思った。これは、新鮮な透明なレイヤーのピクセルの色を尋ねるときにGIMPが報告するものです。

「クリア」は実際に色を削除するわけではなく、透明度を100%に設定するだけです。したがって、元の色が「完全に白く見える」RGBA(1,1,1,1)だった場合、「不可視の白色」のRGBA(1,1,1,0)に変わります。

RGBA(0,0,0,0)を「透明」と誤解していました。実際は「見えない黒」です。

私のスキャンが再び始まったとき、「白く見えますが、白く見えます」と表示されていました。今、「クリア」を使用する代わりに、私は意図的に「目に見えない黒」に設定した背景色を塗りつぶします。

関連する問題