Mam kod:
from tkinter import *
from PIL import ImageTk, Image
from tkinter import filedialog
root=Tk()
root.title("Upload")
root.geometry("900x700")
def save():
myFormats = [('PNG','*.png'), ('JPEG','*.jpg'), ('GIF','*.gif')]
filename = filedialog.asksaveasfilename(filetypes=myFormats)
if filename:
my_image2.save(filename,'jpg')
def open():
global my_image
global my_image2
root.filename=filedialog.askopenfilename(initialdir="/images", title="Select A File", filetypes=(("jpg files","*.jpg"),("all files","*.*")))
label1 = Label(root, text=root.filename).pack()
my_image=ImageTk.PhotoImage(Image.open(root.filename))
height=my_image.height()
width=my_image.width()
if int(width)>800:
new_width = 800/int(width)
width1=width*new_width
height1=height*new_width
else:
label3=Label(root, text=("Rozmiar Twojego obrazka: "+ width+" x "+height), fg="red").pack()
label4 = Label(root, text = "To zdjęcie ma za mały rozmiar", fg="black").pack()
my_image2=ImageTk.PhotoImage(Image.open(root.filename).resize((int(width1),int(height1)), Image.ANTIALIAS))
label2 = Label(root,image=my_image2).pack(pady=20)
button = Button(root,text="Openfile", command=open).pack()
butto2=Button(root,text="Zapisz na dysku", command=save).pack()
root.mainloop()
Wszystko by było dobrze gdyby nie błąd: AttributeError: 'PhotoImage' object has no attribute 'save', próbowałem na wszystkie strony i za każdym razem nie udaje się zapisać zdjęcia.
W linii my_image2=ImageTk.PhotoImage(Image.open(root.filename).resize((int(width1),int(height1)), Image.ANTIALIAS)) próbowałem my_image2=my_image.resize((int(width1),int(height1)), Image.ANTIALIAS)) ale wywala błąd o braku atrybutu resize.
Resize działa tylko w ten sposób. Mój system to Windows. Czy możecie mi pomóc?