Python中的图像模块渐隐效果
我想把一张BMP或JPG图片复制一份,然后让新图片变得更暗(或者更亮),我可以用什么函数呢?
Ariel
2 个回答
1
如果你想用比较复杂的方法,也就是逐个像素地改变亮度,可以按照以下步骤来做:
- 先把颜色从RGB格式转换成HSI格式。
- 然后增加或减少亮度的部分。
- 最后再把HSI格式转换回RGB格式。
需要注意的是,真正的渐变效果,也就是透明度(alpha通道),在JPG或BMP格式中是没有的(在PIL中使用的是RGBA格式的图片)。用亮度的方法可以实现从黑到白的变化。如果你想使用透明度,建议用png或tiff格式。
7
你可以使用PIL库中的ImageEnhance模块。
import Image
import ImageEnhance
image = Image.open(r'c:\temp\20090809210.jpg')
enhancer = ImageEnhance.Brightness(image)
brighter_image = enhancer.enhance(2)
darker_image = enhancer.enhance(0.5)
想了解更多细节,可以查看PIL和ImageEnhance的文档。
注意:我觉得ImageEnhancer的文档有点简略,你可能需要在交互式提示中多试几次才能弄明白。