Python图像显示

Python图像显示,python,image,Python,Image,如何创建一个python脚本,在mac上的目录中运行图像(1.jpeg-n.jpeg),并在浏览器或其他python程序中显示它们 是否将文件导入python并在浏览器中显示? 我是否提取文件名1、2、3、4、5并将其添加到列表中,然后将其提供给另一个调用浏览器并显示的函数 任何帮助都会很好 谢谢 首先必须找到所有图像文件名。您可以使用os.listdir(…)获取特定目录中的所有文件,或者使用glob.glob(…)查找与特定模式匹配的所有文件 显示图像是第二个也是更具挑战性的部分。第一个选项

如何创建一个python脚本,在mac上的目录中运行图像(1.jpeg-n.jpeg),并在浏览器或其他python程序中显示它们

是否将文件导入python并在浏览器中显示? 我是否提取文件名1、2、3、4、5并将其添加到列表中,然后将其提供给另一个调用浏览器并显示的函数

任何帮助都会很好


谢谢

首先必须找到所有图像文件名。您可以使用
os.listdir(…)
获取特定目录中的所有文件,或者使用
glob.glob(…)
查找与特定模式匹配的所有文件

显示图像是第二个也是更具挑战性的部分。第一个选项是在外部程序中打开图像,这可以是web浏览器。在(大多数)平台上,一个命令
firefox 1.jpeg
将在firefox浏览器中打开图像1.jpeg。您可以使用
子流程
模块执行此类命令。如果你想用一个漂亮的GUI来展示它们,你必须用一些框架来创建一个GUI并使用它。但是如果你是初学者,这对你来说可能有点太难了

例如:

import glob
import subprocess
files = glob.glob('dir/*.jpeg')
for file in files:
    subprocess.call(['firefox', file])

只生成带有图片的静态网页可能比构建用于显示图片的GUI容易得多。 您可以生成一个hmtl页面,将图像放在上面,然后用新创建的html文件启动web浏览器。这也为您提供了一些布局的可能性


如果你只是想在浏览器中看到一张图片,那么muksie给出了一个有效的例子。

muksie的答案已经包含了非常有用的建议。如果您不想自己编写HTML文件,或者想要一些更高级的东西,您可以使用我为库编写的一个小脚本。这基本上允许您只需执行以下操作:

import slideshow
slideshow.show_image_slideshow(filenames, image_size=(80,60))

这将创建一个HTML幻灯片并在浏览器中打开它。您可以只获取所需的文件(只需要
templat.py
和两个
幻灯片
文件),这可能比获取完整的库更好。

为此使用Tkinter和PIL非常简单。将muskies示例添加到包含以下内容的信息中:


当然,如果您更熟悉另一个GUI,请继续修改该示例,不需要花太多时间。

太棒了!谢谢!我确实希望最终通过我自己的GUI或Django显示它们。但是我需要了解如何编写python代码来实现这一点,这对我帮助很大!谢谢,谢谢!也很好!我会检查的!我最终想要实现的是一个站点,在这个站点中,图像一个接一个地显示,在每个图像下面都会有一个带有“下一步”的按钮。更高级的选项是在一个站点上有多个图像,可以点击,如果你点击它们,它会显示其他图像。很抱歉,我需要使用Django,因为这需要与Python集成。非常感谢!这看起来很有希望!
# use a Tkinter label as a panel/frame with a background image
# note that Tkinter only reads gif and ppm images
# use the Python Image Library (PIL) for other image formats
# free from [url]http://www.pythonware.com/products/pil/index.htm[/url]
# give Tkinter a namespace to avoid conflicts with PIL
# (they both have a class named Image)

import Tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()
root.title('background image')

# pick an image file you have .bmp  .jpg  .gif.  .png
# load the file and covert it to a Tkinter image object
imageFile = "Flowers.jpg"
image1 = ImageTk.PhotoImage(Image.open(imageFile))

# get the image size
w = image1.width()
h = image1.height()

# position coordinates of root 'upper left corner'
x = 0
y = 0

# make the root window the size of the image
root.geometry("%dx%d+%d+%d" % (w, h, x, y))

# root has no image argument, so use a label as a panel
panel1 = tk.Label(root, image=image1)
panel1.pack(side='top', fill='both', expand='yes')

# put a button on the image panel to test it
button2 = tk.Button(panel1, text='button2')
button2.pack(side='top')

# save the panel's image from 'garbage collection'
panel1.image = image1

# start the event loop
root.mainloop()