我使用 gtk.gdk.PixbufLoader 已经几年了。
今天,我尝试从一台新的安卓设备加载 jpg 文件,但出现了以下异常:
Traceback (most recent call last):
File "myscript.py", line 118, in next
loader.write(buf)
glib.GError: Error interpreting JPEG image file (Unsupported marker type 0x05)
同一文件可以在eog(gnome的眼睛)中加载,我可以使用
convert
(来自image-magick)而不出错。这适用于所有文件,而不仅仅是一个文件,这使我得出结论,文件没有损坏。
可能有什么问题?
这是其中一个文件:http://thomas-guettler.de/20160627_163057-0.jpg 这是重现异常的代码片段:
from gtk.gdk import PixbufLoader
pixbufloader=PixbufLoader()
chunksize=130000
fd=open('20160627_163057-0.jpg', 'rb')
while True:
bytes=fd.read(chunksize)
if not bytes:
break
print pixbufloader.write(bytes)
pixbufloader.close()
如果您将
chunksize
设置为1
,那么它就可以工作。如果我使用
130000
作为chunksize
,那么第一次调用write()
失败。