如何使用PIL或Pillow改变图像的饱和度?我希望能够将该解决方案与django-imagekit包一起使用。我需要更改饱和度的原因是创建一种效果,当用户将黑白图像悬停时,它会变为彩色。
答案 0 :(得分:15)
您可能需要ImageEnhance.Color
。
img = PIL.Image.open('bus.png')
converter = PIL.ImageEnhance.Color(img)
img2 = converter.enhance(0.5)
这使图像的原始颜色为“原色”的一半。这与饱和度的一半不完全相同(因为饱和度的一半或两倍通常会下溢或溢出),但它可能是您实际上想要的大部分时间。正如文档所说,它就像电视上的“颜色”旋钮一样。
这是0.5,1.0和2.0颜色的相同图像的示例:
答案 1 :(得分:4)
如果您想要灰度图像,只需将其转换为L
(亮度)模式:
greyscale = rgba_image.convert('L')
将它应用于我的忍者:
如果您需要中间步骤,则需要将RGB值转换为HLS或HSV,调整饱和度,然后再将其转换回RGB。您可以使用colorsys,或者this numpy
solution;我希望后者表现更好。
答案 2 :(得分:3)
如果你正在使用django-imagekit,你可以使用捆绑的Adjust
处理器:
from imagekit.processors import Adjust
Adjust(color=0.5)
在幕后,这将完全符合@abarnert recommended。