python改变像素点颜色,是否可以在Python中更改单个像素的颜色?

I need python to change the color of one individual pixel on a picture, how do I go about that?

解决方案

To build upon the example given in Gabi Purcaru's link, here's something cobbled together from the PIL docs.

The simplest way to reliably modify a single pixel using PIL would be:

x, y = 10, 25

shade = 20

from PIL import Image

im = Image.open("foo.png")

pix = im.load()

if im.mode == '1':

value = int(shade >= 127) # Black-and-white (1-bit)

elif im.mode == 'L':

value = shade # Grayscale (Luminosity)

elif im.mode == 'RGB':

value = (shade, shade, shade)

elif im.mode == 'RGBA':

value = (shade, shade, shade, 255)

elif im.mode == 'P':

raise NotImplementedError("TODO: Look up nearest color in palette")

else:

raise ValueError("Unexpected mode for PNG image: %s" % im.mode)

pix[x, y] = value

im.save("foo_new.png")

That will work in PIL 1.1.6 and up. If you have the bad luck of having to support an older version, you can sacrifice performance and replace pix[x, y] = value with im.putpixel((x, y), value).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值