python - 将 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
解决方案
在 px[x,y] 中,您有一个元组 (R, G, B),要将其打印为十六进制,您可以执行以下操作:
print("#{:02X}{:02X}{:02X}".format(*px[x,y]))
或者,使其适应您的代码:
val = "#{:02X}{:02X}{:02X}".format(*px[x,y])
print(val)
推荐阅读
- c - 如何在不打印的情况下格式化 C (const char*) 字符串?
- python - 如何从重复的字符串中提取单词
- javascript - 我可以使用 JavaScript 将重定向的 url 存储到变量中吗?
- amazon-quicksight - 快速的 distinctCountOver() 没有返回正确的值
- java - Mulesoft 无法运行 shell 脚本
- r - 使用 ggplot2 使用日期制作折线图
- c++ - C++ 特征库:三角视图优化
- aws-lambda - 在 AWS Lambda 上使用 Nestjs 编写代理并且没有控制器模式似乎与具有查询字符串的请求相匹配
- c# - 如何在 C# 中使用 Microsoft Graph
- django - Django 只能同时处理 3 个动作?