Python中的图像模块渐隐效果

2 投票
2 回答
2273 浏览
提问于 2025-04-15 21:28

我想把一张BMP或JPG图片复制一份,然后让新图片变得更暗(或者更亮),我可以用什么函数呢?
Ariel

2 个回答

1

如果你想用比较复杂的方法,也就是逐个像素地改变亮度,可以按照以下步骤来做:

  1. 先把颜色从RGB格式转换成HSI格式
  2. 然后增加或减少亮度的部分。
  3. 最后再把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的文档有点简略,你可能需要在交互式提示中多试几次才能弄明白。

撰写回答