【问题标题】:Change saturation with Imagekit, PIL or Pillow?使用 Imagekit、PIL 或 Pillow 更改饱和度?
【发布时间】:2013-04-10 19:23:26
【问题描述】:

如何使用 PIL 或 Pillow 更改图像的饱和度?最好我希望能够将该解决方案与 django-imagekit 包一起使用。我需要更改饱和度的原因是为了创建一种效果,当用户悬停黑白图像时,它会变成彩色。

【问题讨论】:

  • 枕头 PIL,真的。

标签: python image python-imaging-library imagekit django-imagekit


【解决方案1】:

如果您想要灰度图像,只需将其转换为L(亮度)模式:

greyscale = rgba_image.convert('L')

将其应用于我的忍者:

如果需要中间步骤,需要将RGB值转换为HLS或HSV,调整饱和度,然后再转换回RGB。您可以为此使用colorsys,或改写this numpy solution;我希望后者表现更好。

【讨论】:

  • 或者制作一个亮度模式版本并与原版混合。
【解决方案2】:

你可能想要ImageEnhance.Color

img = PIL.Image.open('bus.png')
converter = PIL.ImageEnhance.Color(img)
img2 = converter.enhance(0.5)

这给出了一个具有原始“颜色”一半的图像。这与饱和度的一半并不完全相同(因为饱和度的一半或两倍通常会下溢或溢出),但它可能是您实际上想要大部分时间。正如文档所说,它的作用类似于电视上的“颜色”旋钮。

以下是 0.5、1.0 和 2.0 颜色的同一图像的示例:

【讨论】:

    【解决方案3】:

    如果您使用的是 django-imagekit,您可以使用捆绑的 Adjust 处理器:

    from imagekit.processors import Adjust
    Adjust(color=0.5)
    

    在幕后,这将完全符合 @abarnert recommended 的作用。

    【讨论】:

    • 谢谢@matthewwithanm。这正是我一直在寻找的。我想我当时最终创建了自己的处理器,这是一个很好的做法,但我很确定它一定在某个地方的 imagekit 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2016-03-11
    • 2016-01-05
    相关资源
    最近更新 更多