首页 > 解决方案 > 将 RGB 转换为十六进制

问题描述

我正在寻找一种方法来修改我的代码以将 RGB 像素数据转换为十六进制像素数据。比如将37、4、201转换为#2504C9。附上代码,如果有人知道如何做到这一点,我将不胜感激!我从这里尝试了几种方法,但到目前为止还没有找到很多有效的方法。

from PIL import Image
import sys

im = Image.open(r"C:\Users\AChri\Desktop\boio.png")
px = im.load()
w, h = im.size
x = 0
y= 0
while True:
    if x >= w:
        x = 0
        y= y+1
    else:
        if y >= h:
            print('Done!')
            sys.exit()
        else:
            val = px[x, y]
            print(px[x, y])
            x = x+1

标签: pythonhexrgb

解决方案


在 px[x,y] 中,您有一个元组 (R, G, B),要将其打印为十六进制,您可以执行以下操作:

print("#{:02X}{:02X}{:02X}".format(*px[x,y]))

或者,使其适应您的代码:

val = "#{:02X}{:02X}{:02X}".format(*px[x,y])
print(val)

推荐阅读