def hue_change(img, intensity, value):
"""
Change to purple/green hue
:param img: PIL image object
:param intensity: float > 0.1, larger the value, the less intense and more washout
:param value: float, the colour to hue change too on a scale from -360 to 0
:return: PIL image object
"""
original_width, original_height = img.size
# Don't apply hue change if already grayscaled.
if img.mode == 'L':
return img
else:
ld = img.load()
for y in range(original_height):
for x in range(original_width):
r, g, b = ld[x, y]
h, s, v = rgb_to_hsv(r/255, g/255, b/255)
h = (h + value/360.0) % 1.0
s = s**intensity
r, g, b = hsv_to_rgb(h, s, v)
ld[x, y] = (int(r * 255.9999), int(g * 255.9999), int(b * 255.9999))
return img
评论列表
文章目录