# import required modules
from tkinter import filedialog
from tkinter.filedialog import askopenfilename,asksaveasfilename
from PIL import Image, ImageTk, ImageFilter, ImageEnhance, ImageOps
# contrast border thumbnail
root.title("Simple Photo Editor")
img_path = filedialog.askopenfilename(initialdir=os.getcwd())
img = Image.open(img_path)
img.thumbnail((350, 350))
#imgg = img.filter(ImageFilter.BoxBlur(0))
img1 = ImageTk.PhotoImage(img)
canvas2.create_image(300, 210, image=img1)
global img_path, img1, imgg
for m in range(0, v1.get()+1):
img = Image.open(img_path)
img.thumbnail((350, 350))
imgg = img.filter(ImageFilter.BoxBlur(m))
img1 = ImageTk.PhotoImage(imgg)
canvas2.create_image(300, 210, image=img1)
global img_path, img2, img3
for m in range(0, v2.get()+1):
img = Image.open(img_path)
img.thumbnail((350, 350))
imgg = ImageEnhance.Brightness(img)
img3 = ImageTk.PhotoImage(img2)
canvas2.create_image(300, 210, image=img3)
global img_path, img4, img5
for m in range(0, v3.get()+1):
img = Image.open(img_path)
img.thumbnail((350, 350))
imgg = ImageEnhance.Contrast(img)
img5 = ImageTk.PhotoImage(img4)
canvas2.create_image(300, 210, image=img5)
global img_path, img6, img7
img = Image.open(img_path)
img.thumbnail((350, 350))
img6 = img.rotate(int(rotate_combo.get()))
img7 = ImageTk.PhotoImage(img6)
canvas2.create_image(300, 210, image=img7)
global img_path, img8, img9
img = Image.open(img_path)
img.thumbnail((350, 350))
if flip_combo.get() == "FLIP LEFT TO RIGHT":
img8 = img.transpose(Image.FLIP_LEFT_RIGHT)
elif flip_combo.get() == "FLIP TOP TO BOTTOM":
img8 = img.transpose(Image.FLIP_TOP_BOTTOM)
img9 = ImageTk.PhotoImage(img8)
canvas2.create_image(300, 210, image=img9)
global img_path, img10, img11
img = Image.open(img_path)
img.thumbnail((350, 350))
img10 = ImageOps.expand(img, border=int(border_combo.get()), fill=95)
img11 = ImageTk.PhotoImage(img10)
canvas2.create_image(300, 210, image=img11)
global img_path, imgg, img1, img2, img3, img4, img5, img6, img7, img8, img9, img10, img11
ext = img_path.split(".")[-1]
file=asksaveasfilename(defaultextension =f".{ext}",filetypes=[("All Files","*.*"),("PNG file","*.png"),("jpg file","*.jpg")])
elif canvas2.image==img3:
elif canvas2.image==img5:
elif canvas2.image==img7:
elif canvas2.image==img9:
elif canvas2.image==img11:
# create labels, scales and comboboxes
blurr = Label(root, text="Blur:", font=("ariel 17 bold"), width=9, anchor='e')
scale1 = ttk.Scale(root, from_=0, to=10, variable=v1, orient=HORIZONTAL, command=blur)
scale1.place(x=150, y=10)
bright = Label(root, text="Brightness:", font=("ariel 17 bold"))
scale2 = ttk.Scale(root, from_=0, to=10, variable=v2, orient=HORIZONTAL, command=brightness)
scale2.place(x=150, y=55)
contrast = Label(root, text="Contrast:", font=("ariel 17 bold"))
contrast.place(x=35, y=92)
scale3 = ttk.Scale(root, from_=0, to=10, variable=v3, orient=HORIZONTAL, command=contrast)
scale3.place(x=150, y=100)
rotate = Label(root, text="Rotate:", font=("ariel 17 bold"))
values = [0, 90, 180, 270, 360]
rotate_combo = ttk.Combobox(root, values=values, font=('ariel 10 bold'))
rotate_combo.place(x=460, y=15)
rotate_combo.bind("<<ComboboxSelected>>", rotate_image)
flip = Label(root, text="Flip:", font=("ariel 17 bold"))
values1 = ["FLIP LEFT TO RIGHT", "FLIP TOP TO BOTTOM"]
flip_combo = ttk.Combobox(root, values=values1, font=('ariel 10 bold'))
flip_combo.place(x=460, y=57)
flip_combo.bind("<<ComboboxSelected>>", flip_image)
border = Label(root, text="Add border:", font=("ariel 17 bold"))
border.place(x=320, y=92)
values2 = [i for i in range(10, 45, 5)]
border_combo = ttk.Combobox(root, values=values2, font=("ariel 10 bold"))
border_combo.place(x=460, y=99)
border_combo.bind("<<ComboboxSelected>>", image_border)
# create canvas to display image
canvas2 = Canvas(root, width="600", height="420", relief=RIDGE, bd=2)
canvas2.place(x=15, y=150)
btn1 = Button(root, text="Select Image", bg='black', fg='gold', font=('ariel 15 bold'), relief=GROOVE, command=selected)
btn2 = Button(root, text="Save", width=12, bg='black', fg='gold', font=('ariel 15 bold'), relief=GROOVE, command=save)
btn3 = Button(root, text="Exit", width=12, bg='black', fg='gold', font=('ariel 15 bold'), relief=GROOVE, command=root.destroy)
0 Comments
Post a Comment