编辑:在重新阅读我原来的问题后,我很快意识到它的措辞非常糟糕,模棱两可,而且太混乱而无法得到一个体面的答案。这就是我在午休结束时匆忙提出问题的结果。希望这会更清楚:
我正在尝试将一个简单的 C 结构作为 PyBuffer 公开给 Python (3.x),以便从中检索 MemoryView。我要公开的结构与此类似:
struct ImageBuffer {
void* bytes;
int row_count;
int bytes_per_row;
};
我希望允许脚本编写者像这样访问数据:
img_buffer = img.get_buffer()
img_buffer[1::4] = 255 # Set every Red component to full intensity
不幸的是,关于这些结构的 C API 的现有文档非常稀疏,在某些地方自相矛盾,在其他地方完全错误(记录的函数签名与标题中的签名不匹配,等等)因此我没有一个很好的关于如何最好地揭露这一点的想法。另外,我想避免包含第三方库来实现应该是核心库一部分的功能,但我觉得 PyBuffer 功能仍然相当不成熟,也许像 NumPy 这样的东西会是更好的选择。
有人对此有什么建议吗?