次のような PNG 画像があるとします: https://www.box.com/s/dc4dut3yw1vhagm4y9ks
そして、赤い点のサイズを大きくしたいのですが、それは、四角形の隣も塗りつぶさなければならないことを意味します。以下のように:
www
-> rrr
wrw
-> rrr
www
-> rrr
次のような PNG 画像があるとします: https://www.box.com/s/dc4dut3yw1vhagm4y9ks
そして、赤い点のサイズを大きくしたいのですが、それは、四角形の隣も塗りつぶさなければならないことを意味します。以下のように:
www
-> rrr
wrw
-> rrr
www
-> rrr
これはさらに最適化できると確信しています...基本的には画像を2回ロードし、im1とdraw1が読み込まれ、範囲[x + -1、y + -1]のdraw2に赤い点が見つかった場合は変更されます。最後に、draw2 から作成された im2 が保存されます。
#!/usr/bin/env python
import Image
im1 = Image.open("hil0.png")
im2 = Image.open("hil0.png")
w, h = im1.size
draw1 = im1.load()
draw2 = im2.load()
for x in range(w):
for y in range(h):
if draw1[x,y] == (255,0,0):
for dx in [-1,0,1]:
for dy in [-1,0,1]:
nx = x+dx
ny = y+dy
# print nx, ny
if nx>=0 and ny>=0 and nx<w and ny<h:
draw2[ nx, ny ] = (255,0,0)
# im2.show()
im2.save("hil1.png")