ctypes和指针操作

时间:2010-03-22 17:18:04

标签: python ctypes

我正在处理图像缓冲区,我希望能够在我的图像中访问几行数据,以便用c库进行分析。我使用create_string_buffer在Python中创建了我的8位像素缓冲区。有没有办法在不重新创建新缓冲区的情况下获取指向该缓冲区内某个位置的指针?我的目标是以块的形式分析和更改缓冲区中的数据,而无需进行大量的缓冲区创建和数据复制。

在这种情况下,最终,C库正在对缓冲区进行所有操作,因此我实际上不必使用Python更改缓冲区中的值。我只需要让我的C函数访问缓冲区中的数据。

2 个答案:

答案 0 :(得分:8)

create_string_buffer给你一个ctypes对象(一个字符数组),然后byref,我引用,

  

返回一个指向obj的轻量级指针,   它必须是ctypes的一个实例   类型。 offset默认为零,和   必须是要添加的整数   到内部指针值。

offset参数已在2.6中添加,因此,如果您遇到旧版本,则遗憾的是需要更多工作。

答案 1 :(得分:0)

您也可以使用ctypes.cast(buf, ctypes.c_void_p)