使用Imagekit,PIL或Pillow改变饱和度?

ant*_*tam 5 python image imagekit python-imaging-library django-imagekit

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

aba*_*ert 17

你可能想要ImageEnhance.Color.

img = PIL.Image.open('bus.png')
converter = PIL.ImageEnhance.Color(img)
img2 = converter.enhance(0.5)
Run Code Online (Sandbox Code Playgroud)

这使得图像具有原始的"颜色"的一半.这与饱和度的一半不完全相同(因为饱和度的一半或两倍通常会下溢或溢出),但它可能是您实际上大多数时候想要的.正如文档所说,它就像电视上的"颜色"旋钮一样.

这是0.5,1.0和2.0颜色的相同图像的示例: 在此输入图像描述 在此输入图像描述 在此输入图像描述


Mar*_*ers 5

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

greyscale = rgba_image.convert('L')
Run Code Online (Sandbox Code Playgroud)

将其应用于我的忍者:

可爱的忍者 灰阶可爱忍者

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


mat*_*anm 4

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

from imagekit.processors import Adjust
Adjust(color=0.5)
Run Code Online (Sandbox Code Playgroud)

在幕后,这将完全按照@abarnert 的 建议进行。