【发布时间】:2011-09-30 12:11:45
【问题描述】:
我正在尝试从 PIL 图像创建 cairo ImageSurface,我目前的代码是:
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。
【问题讨论】:
-
问题是我拥有的图像是 jpg 而 cairo 只能从 png 文件加载。
-
如果只是这样!使用 gimp 转换图像?
-
我的意思是该程序的目的是处理单个图像但图像未知,我所知道的只是它将是一个 jpg。
标签: python python-imaging-library cairo