我有和的原始十六进制表示形式,如下所示:"FF00FF00FF00"
每2个字母代表一个像素的颜色,在此示例中为6 x白色-黑色-白色-黑色-白色-黑色,2x3像素(宽x高)。
我想将其转换为html可再现的图像。
我想知道最好的解决方案是什么?
我正在考虑将十六进制字符串一一转换为base64,然后使用<img>
标记将其显示在html页面上。
我正在使用python进行转换:
encoded = HEX_STRING.decode("hex").encode("base64")
逐像素转换它会给我这个
/wAA/wAA/wAA
。然后将其作为src
添加到图像标签:<img src='data:image/png;base64,iVBORw0KGgo/wAA/wAA/wAA' alt='img'>
这行不通。
我唯一想到的另一种方法是使用html canvas逐像素绘制图像。
我想知道是否有更简单的解决方案?
最佳答案
一种基本方法是:
import ast
import imageio
import numpy as np
data="FF00FF00FF00"*100
shape=(30,20)
to_int=ast.literal_eval(str("0x")+data)
to_array=np.frombuffer(to_int.to_bytes(len(data)//2,'big'),
np.uint8).reshape(shape)
##
imageio.imsave("try.png",to_array)
图像在那里: