Tengo que toma una imagen de PIL y la convierte en una matriz ctypes para pasar a una función C:convertir de manera eficiente cadena (o tupla) a ctypes gama
w_px, h_px = img.size
pixels = struct.unpack('%dI'%(w_px*h_px), img.convert('RGBA').tostring())
pixels_array = (ctypes.c_int * len(pixels))(*pixels)
Pero estoy tratando con imágenes grandes, y desempaquetar muchos elementos en argumentos funcionales parece ser notablemente lento. ¿Qué es lo más simple que puedo hacer para obtener una aceleración razonable?
Solo estoy convirtiendo a una tupla como un paso intermedio, por lo que si no es necesario, mucho mejor.
Hay también '(ctypes.c_int * n) .from_buffer', que puede usar con una cadena. Todavía estoy tratando de encontrar cómo usar eso sin el paso inmediato de convertir la 'Imagen' de PIL a una cadena. – Kos