Python 图像数据的Ctypes malloc

Python 图像数据的Ctypes malloc,python,ctypes,Python,Ctypes,我正在尝试使用ctypes包装以下c函数: #定义最大图像宽度1024 #定义最大图像高度1024 UFE_状态UFE_res; char-szFileName[256]; 无符号字符*pImage; int nWidth; 内特海特; //从用户获取文件名,szFileName //分配图像缓冲区 pImage=(无符号字符*)malloc(最大图像宽度,最大图像高度); ufe_res=ufe_从bmpfile(szFileName,pImage,&nWidth,&nHeight)加载图像;

我正在尝试使用ctypes包装以下c函数:

#定义最大图像宽度1024
#定义最大图像高度1024
UFE_状态UFE_res;
char-szFileName[256];
无符号字符*pImage;
int nWidth;
内特海特;
//从用户获取文件名,szFileName
//分配图像缓冲区
pImage=(无符号字符*)malloc(最大图像宽度,最大图像高度);
ufe_res=ufe_从bmpfile(szFileName,pImage,&nWidth,&nHeight)加载图像;
但是,我不知道如何在python中使用如下CType分配内存:


有人能告诉我怎么做吗?

下面将分配一个
char
数组
c_char*N
创建大小为N的一维数组:

image = (c_char * (MAX_IMAGE_WIDTH * MAX_IMAGE_HEIGHT))()
请注意,括号很重要:

>>> import ctypes
>>> x=10
>>> y=20
>>> ctypes.c_char * x * y                      # 2D char[y][x] equivalent type
<class '__main__.c_char_Array_10_Array_20'>    # note order of x and y above
>>> ctypes.c_char * (x * y)                    # 1D char[x*y] equivalent type
<class '__main__.c_char_Array_200'>
>>> (ctypes.c_char * (x*y))()                  # instance of char[x*y] array.
<__main__.c_char_Array_200 object at 0x0000014CBB9AF848>
>>> i = (ctypes.c_char * x * y)()              # instance of 2D char[y][x] array.
>>> i[19]                                      # first dimension is y
<__main__.c_char_Array_10 object at 0x0000014CBB9AF848>
>>> i[19][9]                                   # 2nd dimension is x
b'\x00'

下面将分配一个
char
数组
c_char*N
创建大小为N的一维数组:

image = (c_char * (MAX_IMAGE_WIDTH * MAX_IMAGE_HEIGHT))()
请注意,括号很重要:

>>> import ctypes
>>> x=10
>>> y=20
>>> ctypes.c_char * x * y                      # 2D char[y][x] equivalent type
<class '__main__.c_char_Array_10_Array_20'>    # note order of x and y above
>>> ctypes.c_char * (x * y)                    # 1D char[x*y] equivalent type
<class '__main__.c_char_Array_200'>
>>> (ctypes.c_char * (x*y))()                  # instance of char[x*y] array.
<__main__.c_char_Array_200 object at 0x0000014CBB9AF848>
>>> i = (ctypes.c_char * x * y)()              # instance of 2D char[y][x] array.
>>> i[19]                                      # first dimension is y
<__main__.c_char_Array_10 object at 0x0000014CBB9AF848>
>>> i[19][9]                                   # 2nd dimension is x
b'\x00'