使用PIL打开多个图像

时间:2016-02-02 13:00:16

标签: python python-imaging-library

我正在使用python笔记本。在其中,我有代码创建图像,并使用notification 用于调试目的。但是,这样做的缺点是我无法命名图像,因为它有一个临时文件名。然后我使用image.show()以不同的名称保存图像,然后使用image.save("name.png")打开它。但是,当我这样做时,实际上只打开了最后一张图像。我需要做什么才能在几张图片上调用Image.open并打开它们?例如,如果我这样做:

Image.open("name.png")

只有“reconstruction.png”显示。

如果我在每个之后使用Image.show()

image = Image.fromarray( ... )
image.save("original.png")
Image.open("original.png")

image = Image.fromarray( ... )
image.save("reconstruction.png")
Image.open("reconstruction.png")

它会起作用,但是它们会有一个临时名称,这是毫无意义的,如果我最终得到7-8个开放图像,我想要一个简单的方法来跟踪它是什么。

2 个答案:

答案 0 :(得分:1)

Image.show()主要用于调试用途:

  

显示此图像。此方法主要用于调试目的。

     

在Unix平台上,此方法将图像保存到临时PPM文件,并调用xv实用程序。

     

在Windows上,它将图像保存到临时BMP文件,并使用标准BMP显示实用程序来显示它(通常为Paint)。

您可以提供image1 = Image.fromarray( ... ) image1.save("original.png") Image1.open("original.png") image2 = Image.fromarray( ... ) image2.save("reconstruction.png") Image2.open("reconstruction.png") image1.show("image1") image2.show("image2") 参数,但不会在Windows上显示:

  

title - 尽可能用于图像窗口的可选标题。

您可以使用不同的图像变量名称来跟踪Python中的内容:

$sql  = "SELECT distinct count(title) FROM #cookingbooks ";
$db->setQuery($sql);
$cooking= $db->loadResult();
//var_dump($cooking);die;


$sql  = "SELECT distinct count(title) FROM #historybooks ";
$db->setQuery($sql);
$history= $db->loadResult();
//var_dump($history);die;

答案 1 :(得分:0)

我在 IPython/Jupyter/Colab 笔记本中使用的另一种方法是:

import requests
from IPython.display import Image
from IPython.display import display

img0 = Image("img0_path", width = 140) 
img1 = Image("img1_path", width = 140) 
img2 = Image("img2_path", width = 140) 
img3 = Image("img3_path", width = 140) 

display(img0,img1,img2,img3)