【问题标题】:Low the brightness of an Image using Pillow使用 Pillow 降低图像的亮度
【发布时间】:2021-04-10 04:43:32
【问题描述】:

我正在为一个项目使用 Pillow,我真的很想创建如下图所示的效果,请看:

在这张图片中,你看到背景图像是不透明的,我不知道我是否需要使用这个词。我想要做的是文字比背景图像更亮,这是一个很好的效果。

我可以在 Pillow 中复制这个效果吗?如果是这样,功能是什么?十分感谢。我知道这是一个广泛的问题,但由于我什至不知道如何以正确的方式提出这个问题,所以我会接受任何能引导我走向正确道路的建议。

附言。我在以下位置找到了这张照片:http://qz.com/402739/the-best-idioms-from-around-the-world-ranked/

【问题讨论】:

  • 参见问题Algorithm to modify brightness for RGB image? 建议将图像的每个 R、G、B 值乘以某个常数的答案对于通过 Image.point() 函数使用 Pillow 实现是切实可行的。尽管可以实现,但建议将每个像素从 RGB 转换为 HSL 然后再转换回来的方法可能不切实际。

标签: python pillow


【解决方案1】:

基于@martineau 的评论

from PIL import Image

im = Image.open('image-to-modify.jpg')

source = im.split()

R, G, B = 0, 1, 2
constant = 1.5 # constant by which each pixel is divided

Red = source[R].point(lambda i: i/constant)
Green = source[G].point(lambda i: i/constant)
Blue = source[B].point(lambda i: i/constant)

im = Image.merge(im.mode, (Red, Green, Blue))

im.save('modified-image.jpeg', 'JPEG', quality=100)

【讨论】:

    【解决方案2】:

    in the docs 所述,您可以使用 Pillow 的 ImageEnhance 模块来降低或增加图像的亮度。

    最小工作示例 (MWE):

    from PIL import Image, ImageEnhance
    
    img = Image.open("image.jpg")
    enhancer = ImageEnhance.Brightness(img)
    # to reduce brightness by 50%, use factor 0.5
    img = enhancer.enhance(0.5)
    
    img.show()
    img.save("image_darker.jpg")
    

    所以要让图片的文字比背景图片更亮,先对图片应用效果,再添加文字。

    【讨论】:

    • 6 年前的工作做得很好,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2018-03-22
    相关资源
    最近更新 更多