口齿伶俐的.错误:解释JPEG图像文件时出错(不支持的标记类型0x05)



我已经使用gtk.gdk.PixbufLoader好几年了

今天,我试着从一个新的android设备加载一个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-magic)而不会出错。

它发生在所有文件中,而不仅仅是一个,这使我得出结论,文件没有损坏。

怎么了?

下面是其中一个文件: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()

如果你设置chunksize1,那么它工作。

如果我使用130000作为块大小,那么第一次调用write()失败。

我对你的代码进行了研究,并得出结论,正好在chunksize = 69632之后,即在chunksize = 69633时,显示了这个错误。我注意到的另一件事是这个错误与文件相关。如果我使用的文件不是这个"20160627_163057-0.jpg"的图像,错误不会发生。

所以我的结论是这个特定的文件有一些问题。请检查,谢谢。

相关内容

最新更新