我想用python创建一个comic archive reader作为练习来教会自己更多的python,但是我一直在尝试从一个zip归档文件中读取不同的图像文件而不提取这些文件并显示它们时遇到了困难。在
我找到了一个有例子的网站(http://www.python-forum.org/pythonforum/viewtopic.php?f=4&t=3607),只能显示.gif图像。该示例使用PhotoImage
(Tkinter版本不是PIL版本),它可以接受64位编码的字符串,而不是实际的文件。从我的大部分研究来看,PIL是我想用来处理gif以外的图像的方法,但是我找不到一种与Tkinter.PhotoImage
相似的方式来调用PIL.ImageTk.PhotoImage
。获取数据流而不是实际的文件。在
有什么方法可以将从zipfile.read()
接收到的数据传递给PIL.ImageTk.PhotoImage
?有没有别的图书馆可以用来处理这些图像?Tkinter不是我正在编写的程序的要求,所以如果有更好的widget框架,我应该使用,我不介意改变。在
编辑: 所以我想了一个办法来解决这个问题。在
z = zipfile.ZipFile("zipfile.zip", "r")
data = z.read(z.namelist()[0]) #Read in the first image data
dataEnc = StringIO(data) #Encode the raw data to be used by Image.open()
img = Image.open(dataEnc) #Open the image
pimg = ImageTk.PhotoImage(img) #Make tk compatible image
可以使用PythonMagick创建一个
Image
,如下所示:然后使用wxPython显示它,如PythonMagickreadme中在“display”部分下的建议。在
查看我如何解决这个问题的原始帖子
相关问题 更多 >
编程相关推荐