Импортировать изображение в tkinterPython

Программы на Python
Anonymous
Импортировать изображение в tkinter

Сообщение Anonymous »

Хорошо, сейчас я пишу простую программу просмотра изображений, и у меня достаточно кода для просмотра этих изображений, но единственная проблема — просмотреть нужные изображения. Вам нужно поместить их в тот же каталог, что и скрипт, и переименовать. Я хочу, чтобы пользователь мог щелкнуть что-то вроде «Открыть файл», а затем импортировать эти изображения. В настоящее время я использую Tkinter в качестве графического интерфейса и PIL для отображения изображений. вот мой последний код:

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()

Вернуться в «Python»