Hus*_*ien 7 python binary python-imaging-library
基本上我想要做的是获取一个文件,将其二进制数据(当然是十进制)放入列表中,然后使用基于该列表的 PIL 生成灰度位图图像。
例如,如果文件为 5000 字节(图像大小为 100 x 50),并且每个字节都是 0 到 255 之间的整数,我想将第一个字节绘制到第一个像素,然后沿着行向下,直到所有字节都用完。
到目前为止我唯一得到的就是读取文件:
f = open(file, 'rb')
text = f.read()
for s in text:
print(s)
Run Code Online (Sandbox Code Playgroud)
这会以十进制输出字节。
我正在寻找如何实现这一目标的方向。我做了很多搜索,但似乎没有太多人尝试做我想做的事情。
任何帮助将不胜感激!
您可以使用 Numpyfromfile()来有效地读取它:
#!/usr/bin/env python3
import numpy as np
from PIL import Image
# Define width and height
w, h = 50, 100
# Read file using numpy "fromfile()"
with open('data.bin', mode='rb') as f:
d = np.fromfile(f,dtype=np.uint8,count=w*h).reshape(h,w)
# Make into PIL Image and save
PILimage = Image.fromarray(d)
PILimage.save('result.png')
Run Code Online (Sandbox Code Playgroud)
关键词:PIL、Pillow、Python、Numpy、读取原始、二进制、8 位、灰度灰度、图像、图像处理。
| 归档时间: |
|
| 查看次数: |
25991 次 |
| 最近记录: |