猫史档案馆


【Python作品分享】笨笨滤镜【作品秀】

用户:ColdMaoColdMao查看:0 回复:1 评论:0 创建时间:2020-08-29T14:57:57


【作品展示】

center_image

 

【作品介绍】

这是一个滤镜作品,使用了PILLOW与tkinter库,有可视化的优点,快来试试吧

 

【作品源代码】

from tkinter import *
from PIL import Image, ImageTk
root = Tk()
def photos(m):
    if m == 1:
        img.save('new'+photo)
        print('已完成,请关闭窗口,到原图片相同路径查看处理图吧!')
    elif m == 2:
        print('再来一张吧!(关闭窗口)')
    else:
        pass
print("欢迎使用笨笨滤镜~")
print('使用前,请先把程序另存为至要处理图片的相同路径上,程序才能正常运行哦')
photo = input('请输入要处理的图片(文件名+文件格式后缀):')
choice = int(input("请输入滤镜:1.反色 2.鲜明 3.鲜暖色 4.鲜冷色 "))
print('请耐心等待......')
img = Image.open(photo)
img_array = img.load()
width, height = img.size
for x in range(width):
    for y in range(height):
        r = img_array[x, y][0]
        g = img_array[x, y][1]
        b = img_array[x, y][2]
        if choice == 1:
            t = '反色'
            img_array[x, y] = (255-r, 255-g, 255-b)
        elif choice == 2:
            t = '鲜明'
            if r - g < 50 and r - b < 50:
                if r < 200:
                    r += 20
                else:
                    r = 255
                img_array[x, y] = (r, g, b)
            else:
                if r < 225:
                    r += 30
                else:
                    r = 255
                img_array[x, y] = (r, g, b)
            if g - r < 50 and g - b < 50:
                if g < 200:
                    g += 20
                else:
                    g = 255
                img_array[x, y] = (r, g, b)
            else:
                if g < 225:
                    g += 30
                else:
                    g = 255
                img_array[x, y] = (r, g, b)
            if b - r < 50 and b - g < 50:
                if b < 200:
                    b += 20
                else:
                    b = 255
                img_array[x, y] = (r, g, b)
            else:
                if b < 225:
                    b += 30
                else:
                    b = 255
                img_array[x, y] = (r, g, b)
        elif choice == 3:
            t = '鲜暖色'
            if img_array[x, y] == (255, 255, 255):
                pass
            elif r - g < 50 and r - b < 50:
                if r < 200:
                    r += 20
                else:
                    r = 255
                if g > 200:      
                    g -= 15
                else:
                    g -= 5
                if b > 200:
                    b -= 20
                else:
                    b -= 10
                img_array[x, y] = (r, g, b)
            else:
                if r < 225:
                    r += 30
                else:
                    r = 255
                if g > 225:
                    g -= 15
                else:
                    g -= 5
                if b > 225:
                    b -= 20
                else:
                    b -= 10
                img_array[x, y] = (r, g, b)
        elif choice == 4:
            t = '鲜冷色'
            if img_array[x, y] == (255, 255, 255):
                pass
            elif b - g < 50 and b - r < 50:
                if b < 200:
                    b += 20
                else:
                    b = 255
                g += 10        
                r -= 20
                img_array[x, y] = (r, g, b)
            else:
                if b < 225:
                    b += 30
                else:
                    b = 255
                g += 15
                r -= 15
                img_array[x, y] = (r, g, b)
        else:
            print('输入错误,请重新输入')
print('处理完成,请打开旁边的窗口查看图片哦')

root.title('笨笨滤镜-' + t)
i = ImageTk.PhotoImage(img)
label_img = Label(root, image=i)
label_img.grid(row = 1,column = 0,columnspan = 3)

a = Button(root, text='保存', command=lambda:photos(1))
a.grid(row=1, column=0)
b = Button(root, text='不保存', command=lambda:photos(2))
b.grid(row=1, column=2)
mainloop()

print('欢迎下次光临~')
print('bye~bye~')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
忠厚的潘达熊WqxR忠厚的潘达熊WqxR

Thanks♪(・ω・)ノ

蟹蟹支援

 

点赞0


评论