Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Прозначность окна в pyton, tkinter

Олег Сапог Ученик (119), на голосовании 2 месяца назад
Странный вопрос, но я хочу создать программу с помощью ИИ, суть программы это открытие изображения, и изменение его прозрачности, но ИИ не может сделать нормально прозрачность, а в программировании я 0, вот скрипт:




import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk

def open_image():
filepath = filedialog.askopenfilename(filetypes=[("Image files", "*.png *.jpg *.jpeg")])
if filepath:
show_image(filepath)

def show_image(imagefile):
new_window = tk.Toplevel(root)
new_window.title("Image Viewer")
image = Image.open (imagefile)
image = image.convert("RGBA")
image = ImageTk.PhotoImage(image)
label = tk.Label(new_window, image=image)
label.image = image
label.pack()

# Добавляем ползунок прозрачности
transparency_scale = tk.Scale(new_window, from_=0, to=255, orient="horizontal", label="Transparency", command=update_transparency)
transparency_scale.pack()

def update_transparency(value):
alpha = int(value)
root.attributes("-alpha", alpha / 255) # устанавливаем прозрачность окна

root = tk.Tk ()
root.geometry("300x300")

frame = tk.Frame(root)
frame.pack()

button = tk.Button(frame, text="Open Image", command=open_image)
button.pack()

root.mainloop()
Голосование за лучший ответ
スネーク フリーフライト Ученик (223) 3 месяца назад
В твоём коде менялась прозрачность окна, а не изображения
 import tkinter as tk  
from tkinter import filedialog
from PIL import Image, ImageTk

def open_image():
filepath = filedialog.askopenfilename(filetypes=[("Image files", "*.png *.jpg *.jpeg")])
if filepath:
show_image(filepath)

def show_image(imagefile):
new_window = tk.Toplevel(root)
new_window.title("Image Viewer")

image = Image.open(imagefile)
image = image.convert("RGBA")


def update_transparency(value):
alpha = int(value)
image.putalpha(alpha)

new_image = ImageTk.PhotoImage(image)

label.config(image=new_image)
label.image = new_image

transparency_scale = tk.Scale(new_window, from_=0, to=255, orient="horizontal", label="Transparency", command=update_transparency)
transparency_scale.pack()

label = tk.Label(new_window, image=ImageTk.PhotoImage(image))
label.image = image
label.pack()

root = tk.Tk ()
root.geometry("300x300")

frame = tk.Frame(root)
frame.pack()

button = tk.Button(frame, text="Open Image", command=open_image)
button.pack()

root.mainloop()
Похожие вопросы