Python 将图像导入tkinter
好的,我正在编写一个简单的图像查看器,我有足够的代码来查看这些图像,但唯一的问题是查看您想要的图像。您必须将它们放在与脚本相同的目录中并重命名它们。我希望用户能够单击类似“文件打开”,然后导入这些图像。我目前使用Tkinter作为Gui和PIL来显示图像。这是我的最新代码:Python 将图像导入tkinter,python,tkinter,Python,Tkinter,好的,我正在编写一个简单的图像查看器,我有足够的代码来查看这些图像,但唯一的问题是查看您想要的图像。您必须将它们放在与脚本相同的目录中并重命名它们。我希望用户能够单击类似“文件打开”,然后导入这些图像。我目前使用Tkinter作为Gui和PIL来显示图像。这是我的最新代码: from PIL import Image, ImageTk from Tkinter import Tk, Label, BOTH from ttk import Frame, Style import os import
from PIL import Image, ImageTk
from Tkinter import Tk, Label, BOTH
from ttk import Frame, Style
import os
import PIL
import Tkinter
filename = "test.jpg"
filename2 = "test1.jpg"
filename3 = "test2.jpg"
filename4 = "test3.jpg"
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)
img.save('resize.jpg')
basewidth = 300
img = Image.open(filename2)
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)
img.save('resize2.jpg')
basewidth = 300
img = Image.open(filename4)
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)
img.save('resize4.jpg')
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Picture")
self.pack(fill=BOTH, expand=1)
Style().configure("TFrame", background="")
image1 = Image.open("resize.jpg")
bardejov = ImageTk.PhotoImage(image1)
label1 = Label(self, image=bardejov)
label1.image = bardejov
label1.place(x=5, y=5)
image2 = Image.open("resize2.jpg")
bardejov = ImageTk.PhotoImage(image2)
label1 = Label(self, image=bardejov)
label1.image = bardejov
label1.place(x=5, y=250)
image3 = Image.open("resize3.jpg")
bardejov = ImageTk.PhotoImage(image3)
label1 = Label(self, image=bardejov)
label1.image = bardejov
label1.place(x= 350, y=5)
image3 = Image.open("resize4.jpg")
bardejov = ImageTk.PhotoImage(image3)
label1 = Label(self, image=bardejov)
label1.image = bardejov
label1.place(x= 350, y=250)
def main():
root = Tk()
root.geometry("660x488")
app = Example(root)
root.mainloop()
if __name__ == '__main__':
main()
给你-我为一个图像做,你为所有其他图像做同样的事情
import tkFileDialog
from Tkinter import *
from PIL import Image
import os
root= Tk()
def resizeIt():
filename = tkFileDialog.askopenfilename()
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
img.save('resize.jpg')
os.remove(filename) # deletes the original image after you have got the resized image
Button(text='add image', command=resizeIt).pack()
root.mainloop()
在评论中的问题后编辑
是,您可以使用os
模块删除文件。首先在当前名称空间中导入操作系统,然后在保存大小调整后的图像后,添加一行os.remove(filename)
。
我已经在上面的代码中这样做了。给你-我为一个图像这样做,你为所有其他图像这样做
import tkFileDialog
from Tkinter import *
from PIL import Image
import os
root= Tk()
def resizeIt():
filename = tkFileDialog.askopenfilename()
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
img.save('resize.jpg')
os.remove(filename) # deletes the original image after you have got the resized image
Button(text='add image', command=resizeIt).pack()
root.mainloop()
在评论中的问题后编辑
是,您可以使用os
模块删除文件。首先在当前名称空间中导入操作系统,然后在保存大小调整后的图像后,添加一行os.remove(filename)
。
我已经在上面的代码中这样做了。关于这个问题,您还不了解什么?您知道Tkinter有内置的文件对话框吗?或者,你知道但不知道如何使用它吗?或者你还有什么不明白的吗?我知道tkinter有一个内置的文件对话框,我花了一整天的时间试图把它弄出来,但最终我遇到了一个死胡同,在这里发布了我需要有人告诉我如何将文件对话框添加到“定义所有的img=”中来打开文件对话框。然后我就不知道如何打开它。关于这个问题,你不明白什么?您知道Tkinter有内置的文件对话框吗?或者,你知道但不知道如何使用它吗?或者你还有什么不明白的吗?我知道tkinter有一个内置的文件对话框,我花了一整天的时间试图把它弄出来,但最终我遇到了一个死胡同,在这里发布了我需要有人告诉我如何将文件对话框添加到“定义所有的img=”中来打开文件对话框。然后我就不知道如何打开它了。在你选择了四幅图像后,出现了一些问题。你必须单击x来打开它。我如何添加一个文本来告诉用户这样做,或者你有一个修复方法吗?谢谢。你可以在一个对话框中只选择一幅图像。从“文件”对话框中选择单个图像,然后单击“打开”。就这样。您将在保存此python脚本的同一位置获得一个名为resize.jpg的图像。我是否必须使用按钮四次,因为我重复了四次,但都在def rezimg下,然后根据您的需要使用按钮(ect)。如果有4个按钮,请为每个方法添加4个新命令,如resizeIt1到resizeIt4,并小心使用不同的名称保存每个命令。最重要的是阅读一些关于python和/或Tkinteri的书我已经学习了python我在学习Tkine的过程中的艰难之路wierd在你选择了四个图像后会发生什么事情你必须点击x打开它我如何添加一个文本来告诉用户这样做,或者你有一个修复方法吗对话从“文件”对话框中选择单个图像,然后单击“打开”。就这样。您将在保存此python脚本的同一位置获得一个名为resize.jpg的图像。我是否必须使用按钮四次,因为我重复了四次,但都在def rezimg下,然后根据您的需要使用按钮(ect)。如果有4个按钮,请为每个方法添加4个新命令,如resizeIt1到resizeIt4,并小心使用不同的名称保存每个命令。最重要的是读一些关于python和/或Tkinteri的书。我在学习tkiner的过程中经历了学习python的艰辛历程