【发布时间】:2013-04-10 19:23:26
【问题描述】:
如何使用 PIL 或 Pillow 更改图像的饱和度?最好我希望能够将该解决方案与 django-imagekit 包一起使用。我需要更改饱和度的原因是为了创建一种效果,当用户悬停黑白图像时,它会变成彩色。
【问题讨论】:
-
枕头是 PIL,真的。
标签: python image python-imaging-library imagekit django-imagekit
如何使用 PIL 或 Pillow 更改图像的饱和度?最好我希望能够将该解决方案与 django-imagekit 包一起使用。我需要更改饱和度的原因是为了创建一种效果,当用户悬停黑白图像时,它会变成彩色。
【问题讨论】:
标签: python image python-imaging-library imagekit django-imagekit
如果您想要灰度图像,只需将其转换为L(亮度)模式:
greyscale = rgba_image.convert('L')
将其应用于我的忍者:
如果需要中间步骤,需要将RGB值转换为HLS或HSV,调整饱和度,然后再转换回RGB。您可以为此使用colorsys,或改写this numpy solution;我希望后者表现更好。
【讨论】:
你可能想要ImageEnhance.Color。
img = PIL.Image.open('bus.png')
converter = PIL.ImageEnhance.Color(img)
img2 = converter.enhance(0.5)
这给出了一个具有原始“颜色”一半的图像。这与饱和度的一半并不完全相同(因为饱和度的一半或两倍通常会下溢或溢出),但它可能是您实际上想要大部分时间。正如文档所说,它的作用类似于电视上的“颜色”旋钮。
以下是 0.5、1.0 和 2.0 颜色的同一图像的示例:
【讨论】:
如果您使用的是 django-imagekit,您可以使用捆绑的 Adjust 处理器:
from imagekit.processors import Adjust
Adjust(color=0.5)
在幕后,这将完全符合 @abarnert recommended 的作用。
【讨论】: