После 1 недели постоянного сбоя я все еще не в состоянии выполнить простую задачу: загрузите png с альфа-каналом или на белом фоне (в примере ниже) и сохраните его прозрачность в wx.StaticBitmap.wx.StaticBitmap - простая прозрачность (маска, png, bmp?)
Это мне нужно в wx.panel позже. Он должен оставаться таким или подобным.
Это один из моих подходов (белый фон):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.loc = wx.Image("intro/image.png",wx.BITMAP_TYPE_PNG).ConvertToBitmap()
z = wx.Mask(self.loc, wx.WHITE)
self.loc.SetMask(z)
self.locopic = wx.StaticBitmap(self, -1, self.loc, (0, 0))
Я прочитал тонны на эту тему. Я мусор. Сожалею. Кажется, я пропустил нечто очевидное. wx.Mask, Transparent images
Update:
мне удалось получить это далеко на примере найдены at WorkinWithImages:
import ImageConversions
...
puFilename = "intro/imagealpha.png"
pilImage = Image.open(puFilename)
pilImageWithAlpha = ImageConversions.WxImageFromPilImage(pilImage, createAlpha=True)
self.puWxBitmap = pilImageWithAlpha.ConvertToBitmap()
self.locopic = wx.StaticBitmap(self, -1, self.puWxBitmap)
Это создает прозрачную wx.image из PNG с альфа-каналом, а в Wx. StaticBitmap будет иметь уродливый черный цвет, где должна быть прозрачность. Это сводит меня с ума! ПОМОГИ ПОЖАЛУЙСТА!
Если бы мне удалось отобразить в wx.panel это изображение с прозрачностью в нужном месте Спасибо сообществу!
Я очень благодарен вам за то, что вы потратили свое время и нашли решение, которое я действительно понял и выполнил успешно! Спасибо! – Laci
Я получаю эту ошибку: 'wx._core.wxAssertionError: утверждение C++« IsOk() »потерпело неудачу в /tmp/pip-build-neujnbmg/wxPython/ext/wxWidgets/src/common/dcgraph.cpp(437) в SetTextBackground (): wxGCDC (cg) :: SetTextBackground - недействительный DC' ☹ – Sardathrion