使用Imagekit、PIL或枕头改变饱和度?

2024-05-16 15:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用PIL或枕头更改图像的饱和度?最好我想能够使用解决方案与django imagekit包。我需要更改饱和度的原因是创建一个效果,当用户悬停黑白图像时,它会变成彩色。


Tags: django用户图像pil原因imagekit解决方案彩色
3条回答

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

greyscale = rgba_image.convert('L')

把它应用到我的忍者身上:

cute ninjagreyscale cute ninja

如果需要中间步骤,则需要将RGB值转换为HLS或HSV,调整饱和度,然后再次将其转换回RGB。您可以使用colorsys来实现这一点,或者调整this ^{} solution;我希望后者的性能会更好。

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

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

在引擎盖下,这将完全执行@abarnertrecommended

你可能想要^{}

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

这样得到的图像只有原始图像的一半“颜色”。这与饱和的一半并不完全相同(因为饱和的一半或两倍通常会下溢或溢出),但这可能是大多数情况下实际需要的。正如医生所说,它的工作原理就像电视上的“彩色”旋钮。

以下是0.5、1.0和2.0颜色下相同图像的示例: enter image description hereenter image description hereenter image description here

相关问题 更多 >