2017-11-05 26 views
0

寸法を変更せずに、PIL画像の矩形領域を消去し透明化する方法を教えてください。PIL画像の矩形領域を消去する

イメージ&を空のイメージに貼り付けることで実装しましたが、イメージ内の領域を消去することはできません。私の実装はほとんどが算術式なので、これを行うもっとエレガントな方法を見つけようとしています。

答えて

1

RGBAモードで開く必要があります。 Pythonの抽象化レベル内の各ピクセルを反復

from PIL import Image 

rect_size = (100, 300) 
rect_pos = (200, 400) 

im = Image.open("your-image.jpg").convert("RGBA") 
rect = Image.new("RGBA", rect_size, (255, 255, 255, 0)) 
im.paste(rect, rect_pos) 
im.show() 
+0

コストがかかる:( – nipunasudha

+0

あなたが望んでいた場合は、numpyの配列に変換することができ@nipunasudha。しかし、(1920×1080の球場で)通常サイズの画像のためにあなたはおそらく勝ちました – helper

+0

ここでputpixelの代わりに 'paste()'を使って改良しました。これは間違いなく高速です(私は1分間のGoogle検索の後にそれを行う方法を考え出しました)。 – helper