在 GIMP 中,我可以轻松地改变色调和饱和度。例如下图是原图和色相-90、饱和度100后的最终效果。
我如何继续从 Python PIL 获得相同的结果?
原图
最终图片
请您参考如下方法:
您可以结合使用 colorsys 模块和 PIL 来完成它,但是速度有点慢。 colorsys 允许您将颜色空间更改为 HSV,在其中进行色调和饱和度修改是微不足道的。我将饱和度取 0.65 的幂来近似您的示例,它保留了 colorsys 所需的 0.0-1.0 范围,同时增加了中间值。
import colorsys
from PIL import Image
im = Image.open(filename)
ld = im.load()
width, height = im.size
for y in range(height):
for x in range(width):
r,g,b = ld[x,y]
h,s,v = colorsys.rgb_to_hsv(r/255., g/255., b/255.)
h = (h + -90.0/360.0) % 1.0
s = s**0.65
r,g,b = colorsys.hsv_to_rgb(h, s, v)
ld[x,y] = (int(r * 255.9999), int(g * 255.9999), int(b * 255.9999))
