RVB à HSV via PIL et colorsys

J'ai écrit une fonction qui convertit une Image RVB > HSV. Cependant, quand j'ai enregistrer la nouvelle image la seule chose que j'obtiens c'est une image noire. Que dois-je fixer à le faire il résolu?

Toute aide est la bien appréciés!

Mon 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
Une fois que vous avez corrigé les fautes de frappe (Image devrait être Image.Image, l*255 devrait être s*255 et s*255 devrait être v*255), il travaille pour moi.
Oh oui!! L'insertion est une conséquence de rester jusqu'à la fin

OriginalL'auteur bolzano | 2014-03-06