我有和的原始十六进制表示形式,如下所示:"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)


图像在那里:
javascript - 如何将原始十六进制图像转换为html img-LMLPHP

10-06 14:34