17.2.6 更改单个像素

单个像素的颜色可以通过 getpixel()和putpixel()方法取得和设置。它们都接受一个元
组,表示像素的 x 和y 坐标。putpixel()方法还接受一个元组,作为该像素的颜色。这个顔色参数是四整数 RGBA 元组或三整数 RGB 元组。在交互式环境中输入以下代码:


➊  >>>  im  =  Image.new('RGBA',  (100,  100))
➋  >>>  im.getpixel((0,  0)) (0,  0,  0,  0)
➌  >>>  for  x  in  range(100):
for  y  in  range(50):
➍                               im.putpixel((x,  y),  (210,  210,  210))

>>>  from  PIL  import  ImageColor
➎  >>>  for  x  in  range(100):
for  y  in  range(50,  100):
➏                               im.putpixel((x,  y),  ImageColor.getcolor('darkgray',  
'RGBA'))
>>>  im.getpixel((0,  0))
(210,  210,  210,  255)
>>>  im.getpixel((0,  50))
(169,  169,  169,  255)
>>>  im.save('putPixel.png')

在➊,我们得到一个新图像,这是一个 100×100 的透明正方形。对一些坐标调用 
getPixel()将返回(0,0,0,0),因为图像是透明的➋。要给图像中的像素上色,我们可以使用嵌套的 for 
循环,遍历图像上半部分的所有像素➌,用 putpixel()设置每个像素的顔色➍。这里我们向 putpixel()传入 RGB 
元组(210,210,210),即浅灰色。
假定我们希望图像下半部分是暗灰色,但不知道深灰色的 RGB  元组。putpixel()方法不接受'darkgray'这样的标准颜色名称,所以必须使用 
ImageColor.getcolor()来获得 'darkgray'的颜色元组。循环遍历图像的下半部分像素➎,向 putpixel()传入ImageColor. 
getcolor()的返回值➏,你现在应该得到一个图像,上半部分是浅灰色,下半部分是深灰色,如图 17-10 所示。可以对一些坐标调用 
getPixel(),确认指定像素的颜色符合你的期望。最后,将图像存入putPixel.png。

 当然,在图像上一次绘制一个像素不是很方便。如果需要绘制形状,就使用本章稍后介绍的 ImageDraw 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大飞哥软件自习室

希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值