【发布时间】:2021-04-28 18:43:39
【问题描述】:
我有一个 512x512 的图像文件,每 4 个字节使用一个 RGBA 像素。这是一个例子:
1F 8B 08 00
第一个 (R)、第二个 (G) 和第三个 (B) 字节代表 RGB 值,每个值的范围从 0 到 255。最后一个字节 (A) 代表 alpha 通道,范围也是从 0 到255. 如果我想要一个不透明的像素,我必须用 FF 替换最后一个字节(转换为十进制时为 255)。将 4 个字节转换为 RGBA 后,我可以使用 PIL 创建图像,前 4 个字节是位于左上角的像素。
现在这里是 4 个字节,手动转换为 1x1 RGBA 像素: image
这是像素的 RGBA 值,基于 4 个字节:
199(R) 239(G) 125(B) 213(A)
基本上,每个字节都应该转换成一个从 0 到 255 的数字,每 4 个字节是一个 RGBA 值。我可以将这些值放入一个元组中,每 4 个值作为一个 RGBA 像素进行迭代,第一个像素位于图像的左上角。
【问题讨论】:
-
这里有问题吗?
-
基本上,如何将文件中的每 4 个十六进制字节转换为 4 个表示 RGBA 值的整数,每个整数的范围从 0 到 255,然后放入一个元组中,我可以将每 4 个值作为RGBA 值。我也不知道如何告诉 PIL 根据 RGBA 值绘制一个像素,从图像的左上角开始,到右下角结束。
-
请分享文件 - 您可能需要使用 Dropbox 或 Google Drive。
-
好的,这里是 google drive 链接:drive.google.com/file/d/1yvn1u2NXwufuKJIn0Wq7AQbL9eGh1Bza/… 该文件是 gzip 压缩的,所以你必须先解压它。里面的文件包含 RGBA 十六进制数据。
标签: python image python-imaging-library