Форум сайта python.su
как к данному коду прикрутить меню выбора накладки фильтров на фото в точности:
1) накладку серого
if (mode == 0):
for i in range(width):
for j in range(height):
a = pix
b = pix
c = pix
S = (a + b + c) // 3
draw.point((i, j), (S, S, S))
2)Негатив
if (mode == 2):
for i in range(width):
for j in range(height):
a = pix
b = pix
c = pix
draw.point((i, j), (255 - a, 255 - b, 255 - c))
3)и добавление шумов
if (mode == 3):
factor = int(input('factor:'))
for i in range(width):
for j in range(height):
rand = random.randint(-factor, factor)
a = pix + rand
b = pix + rand
c = pix + rand
if (a < 0):
a = 0
if (b < 0):
b = 0
if (c < 0):
c = 0
if (a > 255):
a = 255
if (b > 255):
b = 255
if (c > 255):
c = 255
draw.point((i, j), (a, b, c))
Ну и как сохранить потом эти изменения ?
from Tkinter import *
import Image, ImageTk, tkFileDialog, random, ImageDraw
from tkMessageBox import*
global img, imgobj
def show():
global img, imgobj
filename = tkFileDialog.askopenfilename()
if filename != ():
src_img = Image.open(filename)
img = ImageTk.PhotoImage(src_img)
c.itemconfigure(imgobj, image=img, anchor=“nw”)
def callback():
if askyesno('Verify', ‘Really quit?’):
tk.destroy()
else:
showinfo('No', ‘Quit has been cancelled’)
tk = Tk()
main_menu = Menu(tk)
tk.config(menu=main_menu)
file_menu = Menu(main_menu)
main_menu.add_cascade(label=“File”, menu=file_menu)
file_menu.add_command(label=“Open”, command=show)
file_menu.add_separator()
file_menu.add_command(label=“Exit”, command=callback)
c = Canvas(tk, width=300, height=300, bg=“white”)
imgobj = c.create_image(0, 0)
c.pack()
tk.mainloop()
Офлайн