私は、プログラミング初心者です。現在GIF再生を使ったGUIを作ろうとしていますが、思わぬところで躓いてしまいました。
GUI wxpythonで背景画像の上に、透過部分を含むGIFを再生したいです。
下のプログラムを実行すると、GIFの背景部分が白くなってしまいます。
画像がこんな感じです。
透過にかかわる様々なことを試したのですが、なかなか思うとおりになりません・・。
どなたかわかる方いらっしゃいませんか?
python
1import wx 2import wx.adv 3 4class BG(object):#背景の表示 5 def __init__(self, MainPanel,x,y): 6 BGimg =wx.Image("haikei.png") 7 self.bitmap = BGimg.ConvertToBitmap() 8 wx.StaticBitmap(MainPanel, -1, self.bitmap, (x,y)) 9 10class MyWindow(wx.Frame): 11 def __init__(self, parent=None, id=-1, title=None): 12 wx.Frame.__init__(self, parent, id, title) 13 self.MainPanel = wx.Panel(self, size=(1200, 800))#メイン画面の大きさ 14 self.MainPanel.SetBackgroundColour("Black") 15 self.BackG = BG(self.MainPanel, 0, 0) 16 self.anime = wx.Panel(self.MainPanel, pos=(750, 0), size=(450, 800), 17 style=wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN) 18 self.file = "1.gif" 19 self.ani = wx.adv.Animation(self.file) 20 self.ctrl = wx.adv.AnimationCtrl(self.anime, -1, self.ani, pos=(10, 10), style=wx.TRANSPARENT) 21 self.ctrl.Play() 22 self.Fit() 23 24if __name__ == "__main__": 25 app = wx.App() 26 w = MyWindow(title="test") 27 w.Center 28 w.Show() 29 app.MainLoop()
gifは分かりませんが、↓で透過pngは表示できるようですよ。ご参考までに。
https://teratail.com/questions/106172
あなたの回答
tips
プレビュー