Python实现HTML颜色和RGB颜色互转的方法,pythonrgb,本文是关于Python实


本文是关于Python实现HTML颜色和RGB颜色互转的方法,提供源码参考。在网上有看到过RGB颜色值转换成十六进制颜色码的工具,感觉不错,自己也试着也了一个类似的HTML颜色和RGB颜色互转的Python方法的实现。

Python HTML颜色和RGB颜色互转

Python实现HTML颜色和RGB颜色互转的方法,python源码如下:

#coding=utf-8def RGBToHTMLColor(rgb_tuple):    """ convert an (R, G, B) tuple to #RRGGBB """    hexcolor = '#%02x%02x%02x' % rgb_tuple    # that's it! '%02x' means zero-padded, 2-digit hex values    return hexcolordef HTMLColorToRGB(colorstring):    """ convert #RRGGBB to an (R, G, B) tuple """    colorstring = colorstring.strip()    if colorstring[0] == '#': colorstring = colorstring[1:]    if len(colorstring) != 6:        raise ValueError, "input #%s is not in #RRGGBB format" % colorstring    r, g, b = colorstring[:2], colorstring[2:4], colorstring[4:]    r, g, b = [int(n, 16) for n in (r, g, b)]    return (r, g, b)def HTMLColorToPILColor(colorstring):    """ converts #RRGGBB to PIL-compatible integers"""    colorstring = colorstring.strip()    while colorstring[0] == '#': colorstring = colorstring[1:]    # get bytes in reverse order to deal with PIL quirk    colorstring = colorstring[-2:] + colorstring[2:4] + colorstring[:2]    # finally, make it numeric    color = int(colorstring, 16)    return colordef PILColorToRGB(pil_color):    """ convert a PIL-compatible integer into an (r, g, b) tuple """    hexstr = '%06x' % pil_color    # reverse byte order    r, g, b = hexstr[4:], hexstr[2:4], hexstr[:2]    r, g, b = [int(n, 16) for n in (r, g, b)]    return (r, g, b)def PILColorToHTMLColor(pil_integer):    return RGBToHTMLColor(PILColorToRGB(pil_integer))def RGBToPILColor(rgb_tuple):    return HTMLColorToPILColor(RGBToHTMLColor(rgb_tuple))#www.iplaypy.comimport Imagedef getRGBTupleFromImg(file_obj, coords=(0,0)):    """     Extract an #RRGGBB color string from given pixel coordinates    in the given file-like object.    """    pil_img = Image.open(file_obj)    pil_img = pil_img.convert('RGB')    rgb = pil_img.getpixel(coords)    return rgbif __name__ == '__main__':    htmlcolor = '#ff00cc'    pilcolor = HTMLColorToPILColor(htmlcolor)    rgb = HTMLColorToRGB(htmlcolor)    print pilcolor    print htmlcolor    print rgb    print PILColorToHTMLColor(pilcolor)    print PILColorToRGB(pilcolor)    print RGBToPILColor(rgb)    print RGBToHTMLColor(rgb)    print    img = open('/tmp/bkg.gif', 'r')    print getRGBTupleFromImg(img, (0,0))

编橙之家文章,

评论关闭