在Python中将所有RGB像素的亮度降低20%?

时间:2016-10-04 18:14:17

标签: python image

我一直在尝试用Python教自己更高级的方法,但似乎找不到类似于这个问题的任何东西来基于我的代码。

第一个问题:这是在终端显示图像以安装枕头的唯一方法吗?我不愿意这样做,因为我试图将我学到的东西教给一个非常初学的学生。我的image.show()函数没有做任何事情。

第二个问题:将图像中所有RGB像素的亮度降低20%的最佳方法是什么?我在下面所做的并没有做任何改变亮度的事情,但它也可以完全编译。就导入最小的库而言,我更喜欢最简单的方法。

第三个问题:我如何制作新图片而不是更改原始图片? (IE-亮度降低20%," image-reducedBrightness.jpg"来自" image.jpg")

这是我的代码 - 抱歉它没有正确格式化。每次我试图缩进它会标记到标签栏。

import Image
import ImageEnhance

fileToBeOpened = raw_input("What is the file name? Include file type.")
image = Image.open(fileToBeOpened)

def decreaseBrightness(image):
    image.show()
    image = image.convert('L')
    brightness = ImageEnhance.Brightness(image) 
    image = brightness.enhance(20) 
    image.show() 
    return image

decreaseBrightness(image)

1 个答案:

答案 0 :(得分:0)

要将图像另存为文件,请参阅文档中的示例:

from PIL import ImageFile

fp = open("lena.pgm", "rb")

p = ImageFile.Parser()

while 1:
    s = fp.read(1024)
    if not s:
        break
    p.feed(s)

im = p.close()

im.save("copy.jpg")

关键功能是im.save

要获得更深入的解决方案,请购买一杯不错的饮料,找一个舒适的地方坐下来享受阅读: Pillow 3.4.x Documentation