ctypes и управление указателем

Я имею дело с буферами изображения, и я хочу смочь получить доступ к данным несколько строк в мое изображение для анализа с c библиотекой. Я создал свой 8-разрядный пиксельный буфер в Python с помощью create_string_buffer. Существует ли способ получить указатель на местоположение в том буфере, не воссоздавая новый буфер? Моя цель состоит в том, чтобы проанализировать и изменить данные в том буфере в блоках, не имея необходимость делать большое буферное создание и копирование данных.

В этом случае, в конечном счете, библиотека C делает все управление буфером, таким образом, я не должен на самом деле изменять значения в буфере с помощью Python. Я просто должен предоставить свой доступ функции C к данным в буфере.

5
задан Chris 22 March 2010 в 17:18
поделиться

2 ответа

create_string_buffer дает вам объект ctypes (массив символов), затем byref , и я цитирую,

Возвращает упрощенный указатель на obj, , который должен быть экземпляром типа ctypes . смещение по умолчанию равно нулю, а должно быть целым числом, которое будет добавлено к значению внутреннего указателя.

Аргумент смещение был добавлен в 2.6, поэтому, если вы застряли на более старой версии, вам, к сожалению, потребуется дополнительная работа.

8
ответ дан 14 December 2019 в 04:35
поделиться

Вы также можете использовать ctypes.cast (buf, ctypes.c_void_p)

0
ответ дан 14 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: