РЕДАКТИРОВАТЬ: Перечитав мой первоначальный вопрос, я очень быстро понял, что он очень плохо сформулирован, неоднозначен и слишком запутан, чтобы когда-либо получить достойный ответ. Вот что я получаю за то, что спешу задать вопрос в конце моего обеденного перерыва. Надеюсь, это будет понятнее:
Я пытаюсь представить простую структуру C для Python (3.x) как PyBuffer, чтобы я мог извлечь из него 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 будет лучшим выбором. *
У кого-нибудь есть советы по этому поводу?