Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter로 모양의 알파를 어떻게 변경할 수 있습니까?

<시간/>

Canvas 위젯은 모든 애플리케이션에 그래픽을 제공하는 데 사용되는 tkinter 라이브러리의 다자간 위젯 중 하나입니다. 모양, 이미지, 애니메이션 개체 또는 복잡한 시각적 개체를 그리는 데 사용할 수 있습니다. 알파 모양의 속성은 알파 값을 어떤 모양으로든 변경하려면 부모 창과 관련하여 일부 투명도 동작이 있어야 합니다.

alpha 속성을 정의하려면 모든 모양에 몇 가지 색상이 있다고 가정해야 하며 모양에 알파 값을 제공할 때마다 이미지로 변환해야 합니다. 캔버스 위젯을 사용하여 이미지를 표시할 수 있습니다.

예시

# Import the required libraries
from tkinter import *
from PIL import Image, ImageTk

# Create an instance of tkinter frame
win= Tk()

# Set the size of the tkinter window
win.geometry("700x350")

# Store newly created image
images=[]

# Define a function to make the transparent rectangle
def create_rectangle(x,y,a,b,**options):
   if 'alpha' in options:
      # Calculate the alpha transparency for every color(RGB)
      alpha = int(options.pop('alpha') * 255)
      # Use the fill variable to fill the shape with transparent color
      fill = options.pop('fill')
      fill = win.winfo_rgb(fill) + (alpha,)
      image = Image.new('RGBA', (a-x, b-y), fill)
      images.append(ImageTk.PhotoImage(image))
      canvas.create_image(x, y, image=images[-1], anchor='nw')
      canvas.create_rectangle(x, y,a,b, **options)
# Add a Canvas widget
canvas= Canvas(win)

# Create a rectangle in canvas
create_rectangle(50, 110,300,280, fill= "blue", alpha=.3)
create_rectangle(60, 90,310,250, fill= "red", alpha=.3)

canvas.pack()

win.mainloop()

출력

위의 코드를 실행하여 알파 속성의 모양이 어떻게 달라지는지 확인하세요.

Tkinter로 모양의 알파를 어떻게 변경할 수 있습니까?