Я имею дело с буферами изображения, и я хочу смочь получить доступ к данным несколько строк в мое изображение для анализа с c библиотекой. Я создал свой 8-разрядный пиксельный буфер в Python с помощью create_string_buffer. Существует ли способ получить указатель на местоположение в том буфере, не воссоздавая новый буфер? Моя цель состоит в том, чтобы проанализировать и изменить данные в том буфере в блоках, не имея необходимость делать большое буферное создание и копирование данных.
В этом случае, в конечном счете, библиотека C делает все управление буфером, таким образом, я не должен на самом деле изменять значения в буфере с помощью Python. Я просто должен предоставить свой доступ функции C к данным в буфере.
create_string_buffer дает вам объект ctypes (массив символов), затем byref , и я цитирую,
Возвращает упрощенный указатель на obj, , который должен быть экземпляром типа ctypes . смещение по умолчанию равно нулю, а должно быть целым числом, которое будет добавлено к значению внутреннего указателя.
Аргумент смещение
был добавлен в 2.6, поэтому, если вы застряли на более старой версии, вам, к сожалению, потребуется дополнительная работа.
Вы также можете использовать ctypes.cast (buf, ctypes.c_void_p)