Я использую макрос SWIG array_class
, определенный в carrays.i, для создания беззнакового буфера char, который можно отправить на сторону C++ моего проекта, которая обрабатывает снимки. Это работает нормально — буфер заполняется данными ширины после срабатывания камеры, и я могу разыменовать буфер, используя [] из python, чтобы увидеть, что он содержит. Теперь я хочу создать изображение PIL из этого буфера, используя Image.frombuffer
:
Image.frombuffer(mode, size, data) => image
(Новое в PIL 1.1.4). Создает память изображения из пиксельных данных в строке или буферном объекте, используя стандартный "необработанный" декодер.
но я получаю сообщение об ошибке, говорящее мне, что объект SWIG, который я предоставляю, не является буфером python:
Файл "/usr/lib/python2.7/dist-packages/PIL/Image.py", строка 1853, в frombuffer
core.map_buffer(data, size, decoder_name, None, 0, args)
TypeError : ожидаемая строка или буфер
Как я могу сделать этот прокси объекта SWIG совместимым с типом буфера, который ожидает Image.frombuffer
?