【发布时间】:2023-03-28 08:26:01
【问题描述】:
我用python创建了一个简单的程序来改变图片对比度、亮度颜色等。首先我只添加了一个效果,效果很好,我设法将它与一个缩放器链接。然后我尝试一次添加多个效果,我也与缩放器相关联,但是当我尝试在图片上添加多个效果(例如同时对比度和亮度)时,我得到了一个灰色的屏幕,或者什么也没发生图片。
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from PIL import Image
from PIL import ImageEnhance
def main():
window = Tk()
window.geometry("400x290")
window.configure(background="#EBEBEB")
OpenB = ttk.Button(window, text="Import Photo")
OpenB.pack()
def onClickImport():
askimage = askopenfilename()
global img
img=Image.open(askimage)
OpenB.config(command=onClickImport)
window.mainloop()
window2 = Tk()
window2.geometry("400x290")
window2.configure(background="#EBEBEB")
DisplayButton=ttk.Button(window2,text="Show")
DisplayButton.pack()
ScalerContrast= ttk.Scale(window2, from_=1.0, to_=5.0)
ScalerContrast.pack()
ScalerBrightness = ttk.Scale(window2, from_=1.0, to_=5.0)
ScalerBrightness.pack()
ScalerColor = ttk.Scale(window2, from_=1, to_=100)
ScalerColor.pack()
ScalerSharpness = ttk.Scale(window2, from_=1, to_=100)
ScalerSharpness.pack()
textCon=Text(window2,width=8,height=1)
textCon.insert(END,"Contrast")
textCon.config(state=DISABLED)
textCon.configure(background="#EBEBEB")
textCon.configure(font="Roboto")
textCon.pack()
textBr=Text(window2,width=8,height=1)
textBr.insert(END,"Brightness")
textBr.config(state=DISABLED)
textBr.configure(background="#EBEBEB")
textBr.configure(font="Roboto")
textBr.pack()
textCor=Text(window2,width=8,height=1)
textCor.insert(END,"Color")
textCor.config(state=DISABLED)
textCor.configure(background="#EBEBEB")
textCor.configure(font="Roboto")
textCor.pack()
textSh=Text(window2,width=8,height=1)
textSh.insert(END,"Sharpness")
textSh.config(state=DISABLED)
textSh.configure(background="#EBEBEB")
textSh.configure(font="Roboto")
textSh.pack()
converter = ImageEnhance.Contrast(img)
converter1= ImageEnhance.Brightness(img)
converter2= ImageEnhance.Color(img)
converter3= ImageEnhance.Sharpness(img)
def onClickDisplay():
img2=converter.enhance(ScalerContrast.get()) and converter1.enhance(ScalerBrightness.get()) and\
converter2.enhance(ScalerColor.get()) and converter3.enhance(ScalerColor.get())
img2.show()
DisplayButton.config(command=onClickDisplay)
window2.mainloop()
if __name__=='__main__':
main()
【问题讨论】:
标签: python tkinter python-imaging-library