Я пытаюсь создать cairo ImageSurface из образа PIL, код, который у меня есть, таков:
im = Image.open(filename)
imstr = im.tostring()
a = array.array('B', imstr)
height, width = im.size
stride = cairo.ImageSurface.format_stride_for_width(cairo.FORMAT_RGB24, width)
return cairo.ImageSurface.create_for_data(a, cairo.FORMAT_ARGB24, width, height, stride)
Но это дает мне
TypeError: buffer is not long enough.
Я действительно не понимаю, почему это так, возможно Я недостаточно хорошо разбираюсь в форматах изображений.
Я использую cairo 1.10.