我正在使用wxWidgets设计一个GUI,它将多个透明度层叠在一起。
因此,对于使用wxGraphicsContext
绘制到“共享”wxImage
的每个图层,我有一种方法,然后将其绘制到wxWindow
方法中的paintEvent
。
我的数组中的图层数据与我的wxImage
完全相同,因此我需要以像素方式绘制/操作。目前我正在使用drawRectangle
- 例程。我的猜测是效率很低。
是否有一种巧妙的方法可以直接操作wxImage
的像素数据,使我能够在结果图像中使用每个单独图层的透明度?或者drawRectangle
的1x1像素图是否足够?
感谢您对此的任何想法!
答案 0 :(得分:1)
您可以通过直接访问它们来有效地操纵wxImage
像素,它们存储在两个连续的RGB和alpha数组中,您可以直接使用它们。
问题通常是将wxImage
转换为可以显示的wxBitmap
- 这是一项昂贵的操作,为避免原始位图访问,可以直接操作wxBitmap
代替。