2014-09-28 3 views
2

Tkinter에서 게임을 만들고 있는데 분명히 이유가있어 게임에서 부분적으로 투명한 이미지를 원합니다 ...Tkinter에 부분적으로 투명한 이미지를 추가하는 방법은 무엇입니까?

어떻게해야합니까? PNG는 투명도를 허용하지 않고 JPEG는 투명도를 허용하지만 '이미지 파일'로 간주되지 않습니다 ... 어떤 파일 형식이 허용합니까? 비트 맵을 사용하여 JPEG를 유용하게 사용할 수 있습니까? 감사!

일부 사용 정보 :

나는 방법은 Tkinter에서 물건을 만드는 2 개월 전 파이썬을 배우기 시작하고 끔찍하게 잘 모르겠지만, 나는 수업, 기능을 알고,하고. 나는 또한 분명히 더 많은 것을 알지만, 내가 말했듯이 나는 너무 끔찍하지 않다. 감사!

+0

에는 코드의 최소 예가 추가되었습니다. :). 그것이 작동하지 않으면 말해봐. – W1ll1amvl

답변

5

Tkinter는 .ico 파일을 인식하지만 필자는 왼쪽 상단의 아이콘으로 사용하지 않았습니다.

나는 그것을 표시하기 위해 GIF 파일과 tk.PhotoImage을 사용할 것입니다. 이것은 표시하는 투명 이미지를 허용 않습니다

내 증명 :

enter image description here

TK 식 창에서 이미지,하지만 난 노란색 말을 배경 색상을 변경할 때, 버튼 배경은 동일 tk 창 배경으로, 그래서 그것은 투명합니다.

enter image description here

편집 : 여기 CODE 당신을 도와줍니다

import tkinter as tk 
root = tk.Tk() 
image1 = tk.PhotoImage(file = "FILENAME.gif") 
label1 = tk.Button(image = image1) 
label1.pack() 
root.mainloop() 

희망입니다.

+0

사실 저의 경우 이미지 편집 소프트웨어 일 수 있습니까? 저는 매번 .gif 형식으로 내보내는 Gimp 2와 paint.net을 사용해 보았습니다. – HKVariant

+0

Hunter Kepley, 편리하면 코드를 보여줄 수 있습니까? – W1ll1amvl

+0

문제 없습니다. – HKVariant

1
from tkinter import * 

root = Tk() 

startpic = PhotoImage(file = "ddsp.gif") 
startbut = PhotoImage(file = "start.gif") 
helpbut = PhotoImage(file = "help.gif") 
exitbut = PhotoImage(file = "exit.gif") 

root.geometry("640x480") 
root.title("Deep Death") 
root.resizable(0,0) 

starter = Label(image = startpic) 
starter.pack() 

start = Label(image = startbut) 
start.place(x=340,y=80) 

root.mainloop() 

.gifs '는 투명하지만 흰색 배경으로 표시됩니다.

+0

일반적인 원칙으로, 사용 가능한'{.pack() | '세트에서 두 개 이상의''를 사용하지 말아야한다. .grid() | . 위젯을 함께 작성한 Tkinter GUI에서 .place()}'를 사용하십시오. – user3666197

+1

@ user3666197 : 그건 나쁜 일반 원칙입니다.사실, 나는 일반적인 규칙이 항상 둘 이상을 사용하는 것이라고 말하기까지 할 것이다. 그들 각각에는 강점과 약점이 있습니다. 유일한주의 사항은 동일한 부모를 공유하는 위젯이있는 두 개의 다른 관리자를 사용할 수 없다는 것입니다. –

+0

배경 이미지와 같은 항목에 둘 이상을 사용하기 때문에 캔버스가 적합합니다. 하지만 캔버스를 사용하는 방법은 부분적으로 투명한 이미지를 입력 할 수 있지만 팩 그리드 또는 장소는 투명하지 않습니다. 버튼이 캔버스에 없기 때문에 버튼을 부분적으로 투명하게 만들어야하기 때문에 알아야합니다. 도움! – HKVariant

관련 문제