I have written a function which converts an Image from RGB > HSV. However, when I save the new image the only thing I get is a black image. What should I fix to get it solved?
Any help is kindly appreciated!
My code:
def HSVColor(img):
if isinstance(img,Image):
r,g,b = img.split()
Hdat = []
Sdat = []
Vdat = []
for rd,gn,bl in zip(r.getdata(),g.getdata(),b.getdata()) :
h,s,v = colorsys.rgb_to_hsv(rd/255.,gn/255.,bl/255.)
Hdat.append(int(h*255.))
Sdat.append(int(l*255.))
Vdat.append(int(s*255.))
r.putdata(Hdat)
g.putdata(Sdat)
b.putdata(Vdat)
return Image.merge('RGB',(r,g,b))
else:
return None
Just FYI, with a recent copy of Pillow, one should probably use
def rgb2hsv(image):
return image.convert('HSV')
i think you are trying to do the impossible, although you can transform rgb to hsv colour (and vice versa) values, according to wikipedia jpg images can only be stored in rgb or cmyk models.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With