wxWidgets启用多层透明度的绘图

时间:2014-11-12 11:23:57

标签: wxwidgets

我正在使用wxWidgets设计一个GUI,它将多个透明度层叠在一起。 因此,对于使用wxGraphicsContext绘制到“共享”wxImage的每个图层,我有一种方法,然后将其绘制到wxWindow方法中的paintEvent

我的数组中的图层数据与我的wxImage完全相同,因此我需要以像素方式绘制/操作。目前我正在使用drawRectangle - 例程。我的猜测是效率很低。

是否有一种巧妙的方法可以直接操作wxImage的像素数据,使我能够在结果图像中使用每个单独图层的透明度?或者drawRectangle的1x1像素图是否足够?

感谢您对此的任何想法!

1 个答案:

答案 0 :(得分:1)

您可以通过直接访问它们来有效地操纵wxImage像素,它们存储在两个连续的RGB和alpha数组中,您可以直接使用它们。

问题通常是将wxImage转换为可以显示的wxBitmap - 这是一项昂贵的操作,为避免原始位图访问,可以直接操作wxBitmap代替。