打开2个文件夹中的图像并在python中同时显示它们
我想从2个不同的文件夹打开图像,并将它们显示在彼此旁边,还有一个按钮“下一步”,以便能够移动到下一对图像 图像路径存储在一个txt文件中,所以让我们假设打开第一个图像和第二个图像,当我单击下一步,第三个和第四个图像等等 我是python新手,这是我到目前为止在阅读图像时发现的打开2个文件夹中的图像并在python中同时显示它们,python,tkinter,Python,Tkinter,我想从2个不同的文件夹打开图像,并将它们显示在彼此旁边,还有一个按钮“下一步”,以便能够移动到下一对图像 图像路径存储在一个txt文件中,所以让我们假设打开第一个图像和第二个图像,当我单击下一步,第三个和第四个图像等等 我是python新手,这是我到目前为止在阅读图像时发现的 from Tkinter import * from PIL import ImageTk, Image import os root = Tk() img = ImageTk.PhotoImage(Image.op
from Tkinter import *
from PIL import ImageTk, Image
import os
root = Tk()
img = ImageTk.PhotoImage(Image.open("path.ppm"))
panel = Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
但我不知道如何同时打开两个图像并添加“下一步”按钮。下面是一个工作示例:
from tkinter import *
def UpdateImg ( ):
global img1, img2
img1 = PhotoImage(file=ImgFiles[Cur])
img2 = PhotoImage(file=ImgFiles[Cur+1])
LblImg1.configure(image = img1, text=ImgFiles[Cur])
LblImg2.configure(image = img2, text=ImgFiles[Cur+1] )
def BtnNext( ):
global Cur
if Cur < len(ImgFiles)-2:
Cur = Cur + 2
UpdateImg ( )
def BtnPrev( ):
global Cur
if Cur > 1:
Cur = Cur - 2
UpdateImg ( )
fp = open("ImgFilesSrc.txt", "r")
ImgFiles = fp.read().split('\n')
fp.close()
Cur = 0
img1 = img2 = ''
root = Tk()
#Create the main Frame -----------------------------------------------------------------
FrmMain = Frame(root)
LblImg1 = Label(FrmMain, text = "Picture 1", anchor=W, width=120, bg="light sky blue")
LblImg2 = Label(FrmMain, text = "Picture 2", anchor=W, width=120, bg="light sky blue")
BtnPrev = Button(FrmMain, text=" < ", width=10, command=BtnPrev)
BtnNext = Button(FrmMain, text=" > ", width=10, command=BtnNext)
LblImg1.grid (row=2, rowspan = 3, column=1, columnspan=3);
LblImg2.grid (row=2, rowspan = 3, column=4, columnspan=3);
BtnPrev.grid (row=5, column=2); BtnNext.grid(row=5, column=4)
FrmMain.pack(side=TOP, fill=X)
#--------------------------------------------------------------------------
UpdateImg ( )
root.mainloop()
从tkinter导入*
def UpdateImg():
全局img1,img2
img1=PhotoImage(文件=ImgFiles[Cur])
img2=PhotoImage(文件=ImgFiles[Cur+1])
LblImg1.configure(image=img1,text=ImgFiles[Cur])
LblImg2.configure(image=img2,text=ImgFiles[Cur+1])
def BtnNext():
全球Cur
如果Cur1:
Cur=Cur-2
UpdateImg()
fp=打开(“ImgFilesSrc.txt”、“r”)
ImgFiles=fp.read().split('\n')
fp.close()
Cur=0
img1=img2=“”
root=Tk()
#创建主框架-----------------------------------------------------------------
FrmMain=帧(根)
LblImg1=标签(FrmMain,text=“图片1”,锚点=W,宽度=120,bg=“浅天蓝”)
LblImg2=标签(FrmMain,text=“Picture 2”,锚点=W,宽度=120,bg=“浅天蓝”)
BtnPrev=按钮(FrmMain,text=“<”,宽度=10,命令=BtnPrev)
BtnNext=按钮(FrmMain,text=“>”,宽度=10,命令=BtnNext)
LblImg1.grid(行=2,行span=3,列=1,列span=3);
LblImg2.grid(行=2,行span=3,列=4,列span=3);
BtnPrev.grid(行=5,列=2);BtnNext.grid(行=5,列=4)
FrmMain.pack(侧面=顶部,填充=X)
#--------------------------------------------------------------------------
UpdateImg()
root.mainloop()
以下是一个您所问问题的工作示例:
from tkinter import *
def UpdateImg ( ):
global img1, img2
img1 = PhotoImage(file=ImgFiles[Cur])
img2 = PhotoImage(file=ImgFiles[Cur+1])
LblImg1.configure(image = img1, text=ImgFiles[Cur])
LblImg2.configure(image = img2, text=ImgFiles[Cur+1] )
def BtnNext( ):
global Cur
if Cur < len(ImgFiles)-2:
Cur = Cur + 2
UpdateImg ( )
def BtnPrev( ):
global Cur
if Cur > 1:
Cur = Cur - 2
UpdateImg ( )
fp = open("ImgFilesSrc.txt", "r")
ImgFiles = fp.read().split('\n')
fp.close()
Cur = 0
img1 = img2 = ''
root = Tk()
#Create the main Frame -----------------------------------------------------------------
FrmMain = Frame(root)
LblImg1 = Label(FrmMain, text = "Picture 1", anchor=W, width=120, bg="light sky blue")
LblImg2 = Label(FrmMain, text = "Picture 2", anchor=W, width=120, bg="light sky blue")
BtnPrev = Button(FrmMain, text=" < ", width=10, command=BtnPrev)
BtnNext = Button(FrmMain, text=" > ", width=10, command=BtnNext)
LblImg1.grid (row=2, rowspan = 3, column=1, columnspan=3);
LblImg2.grid (row=2, rowspan = 3, column=4, columnspan=3);
BtnPrev.grid (row=5, column=2); BtnNext.grid(row=5, column=4)
FrmMain.pack(side=TOP, fill=X)
#--------------------------------------------------------------------------
UpdateImg ( )
root.mainloop()
从tkinter导入*
def UpdateImg():
全局img1,img2
img1=PhotoImage(文件=ImgFiles[Cur])
img2=PhotoImage(文件=ImgFiles[Cur+1])
LblImg1.configure(image=img1,text=ImgFiles[Cur])
LblImg2.configure(image=img2,text=ImgFiles[Cur+1])
def BtnNext():
全球Cur
如果Cur1:
Cur=Cur-2
UpdateImg()
fp=打开(“ImgFilesSrc.txt”、“r”)
ImgFiles=fp.read().split('\n')
fp.close()
Cur=0
img1=img2=“”
root=Tk()
#创建主框架-----------------------------------------------------------------
FrmMain=帧(根)
LblImg1=标签(FrmMain,text=“图片1”,锚点=W,宽度=120,bg=“浅天蓝”)
LblImg2=标签(FrmMain,text=“Picture 2”,锚点=W,宽度=120,bg=“浅天蓝”)
BtnPrev=按钮(FrmMain,text=“<”,宽度=10,命令=BtnPrev)
BtnNext=按钮(FrmMain,text=“>”,宽度=10,命令=BtnNext)
LblImg1.grid(行=2,行span=3,列=1,列span=3);
LblImg2.grid(行=2,行span=3,列=4,列span=3);
BtnPrev.grid(行=5,列=2);BtnNext.grid(行=5,列=4)
FrmMain.pack(侧面=顶部,填充=X)
#--------------------------------------------------------------------------
UpdateImg()
root.mainloop()
您的问题几乎涉及面很广;但是,由于您似乎已经知道如何显示一张图片,因此可以确保同时显示两张图片(只需添加另一个标签来固定它,就像第一张一样,并一次从文本文件中读取两行),您是否尝试过在root.mainloop()之前简单地复制这三行
看看会发生什么?你的问题几乎很广泛;然而,由于您似乎已经知道如何显示一张图片,因此可以确保可以同时显示两张图片(只需添加另一个标签来固定它,就像第一张一样,并一次从文本文件中读取两行),您是否尝试过在root.mainloop()
之前简单地复制这三行,看看会发生什么?