私の名前が示すように、私はコーディングが初めてで、Python を使用していて、タスクを完了するために Python Imaging Library を使用する際に助けていただければ幸いです。
私は2つのビットマップ画像を持っています。最初の画像はカラー絵画で、2 番目の画像には白黒のピクセルのみが含まれています... 2 つの画像をパラメーターとして受け入れて、本質的に最初の画像 (絵画) である新しい画像を作成する関数を開発したいと思います。その上に上書きされた 2 番目の画像の黒いピクセルのみ。2 番目の画像は最初の画像よりも小さく、上書きされたピクセルは新しい画像の中央に配置する必要があります。
PIL をインストールし、次のコードを使用して最初の画像を正常に表示することができました。
import PIL
from PIL import Image
painting = Image.open("painting.bmp")
painting.show()
画像が同じサイズではないため、ImageChops モジュールの .blend 関数と .composite 関数、または .multiply 関数の使用を除外しました。
タプル (0,0,0) で識別される黒いピクセルを見つけるには、.getpixel / .putpixel または .getdata / .putdata のいずれかを使用する必要があると思います。また、私が考えているPILの切り取りと貼り付け機能は、絵画から「領域」を見つけて黒いピクセルで上書きするのに役立ち、黒いピクセルを絵画の中央に配置するのに役立つと思いますか?
だから私は多分このようなものを見ています...
def overwrite_black(image1, image2):
image_1 = Image.open('painting.bmp')
image_2 = Image.open('black_white.bmp')
pixels = list(image_2.getdata())
for y in xrange(image_2.size[1]):
for x in xrange(image_2.size[0]):
if pixels ==(o,o,o):
image_2.putdata(pixels((x,y),(0,0,0)))
image_2.save('painted.bmp')
繰り返しますが、私は新しいので、気楽に行ってください。どんな助けでも大歓迎です。
乾杯。