请教wxPython中如何设置背景为透明

请教wxPython中如何设置背景为透明,第1张

软件:Potoshop

步骤:

1、首先,按“Ctl+O”在Potoshop中打开一张LOGO的图片

2、然后,选择"魔棒工具",容差设置为50%,不要勾选连续。点选白色背景,就会生成如图的选区。

3、最后,按Delete键删除掉多余的白色背景,存储为Png格式即可。

如果是直接显示图片,可以设置图片的Alpha通道数据来实现透明:

[I,map,alpha] = imread('im.png')

h = imshow(I)

set(h,'AlphaData',alpha)

但对于控件而言,只能通过CData属性指定图像数据,而没有指定透明度的手段,所以,要想实现透明效果,只能在读图片时把透明色以控件的背景色代替。例如:

BG = get(gcf,'defaultuicontrolback')

[I,map] = imread('im.png','BackgroundColor',BG)

希望对题主有帮助,有问题可追问。

另,看到题主在MATLAB中文论坛上也有提问,我在那里也回答了,有问题也可以在那里讨论。毕竟度娘过于傲娇,限制多多,一不小心就抽风。不过,如果在那里讨论的话,还是请通过私信或者在这里追问的方式告诉我一声,因为我不经常访问那里。

wxpython:

# 使用wx.Image得到对象

bmp = wx.Image('bitmaps/image.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap()

gif = wx.Image('bitmaps/image.gif', wx.BITMAP_TYPE_GIF).ConvertToBitmap()

png = wx.Image('bitmaps/image.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()

jpg = wx.Image('bitmaps/image.jpg', wx.BITMAP_TYPE_JPEG).ConvertToBitmap()

# 把它们显示出来

pos = 10

wx.StaticBitmap(frame, -1, bmp, (10, pos), (bmp.GetWidth(), bmp.GetHeight()))

pos = pos + bmp.GetHeight() + 10

wx.StaticBitmap(frame, -1, gif, (10, pos), (gif.GetWidth(), gif.GetHeight()))

pos = pos + gif.GetHeight() + 10

wx.StaticBitmap(panel, -1, png, (10, pos), (png.GetWidth(), png.GetHeight()))

pos = pos + png.GetHeight() + 10

wx.StaticBitmap(frame, -1, jpg, (10, pos), (jpg.GetWidth(), jpg.GetHeight()))

具体的请根据你的实际情况修改,最好去http://www.wxpython.org/download.php#binaries

下载wxpython和wxpython demo看看,这个demo很强大的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11962867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存