-1

假设我有一个这样的 PNG 图像: https ://www.box.com/s/dc4dut3yw1vhagm4y9ks

我想增加红点的大小,这意味着它们也必须填充正方形的邻居。如下所示:

www -> rrr

wrw -> rrr

www -> rrr

4

1 回答 1

1

我很确定这可以进一步优化......基本上它会加载图像两次,读取 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 回答