2.2.3.2 旧的buffer协议
- 只有1-D buffers
- 没有数据类型信息
- C-级接口;
PyBufferProcs
tp_as_buffer
在类型对象中 - 但是它被整合在Python中(比如,字符支持这个协议)
使用PIL(Python Imaging Library)的小练习:
也可以看一下:pilbuffer.py
In [ ]:
import Image
data = np.zeros((200, 200, 4), dtype=np.int8)
data[:, :] = [255, 0, 0, 255] # Red
# In PIL, RGBA images consist of 32-bit integers whose bytes are [RR,GG,BB,AA]
data = data.view(np.int32).squeeze()
img = Image.frombuffer("RGBA", (200, 200), data)
img.save('test.png')
Q: 检查一下如果data
修改的话,再保存一下img
看一下会发生什么。