-1

次のような PNG 画像があるとします: https://www.box.com/s/dc4dut3yw1vhagm4y9ks

そして、赤い点のサイズを大きくしたいのですが、それは、四角形の隣も塗りつぶさなければならないことを意味します。以下のように:

www -> rrr

wrw -> rrr

www -> rrr

4

1 に答える 1

1

これはさらに最適化できると確信しています...基本的には画像を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")
于 2012-10-06T22:28:35.903 に答える