这类支持还是相当的多的,
分在两个类里面:wxBitmap 和 wxImage。两者的关系是:wxImage更倾向于逻辑层的组织,可以有loadFile这样的方法来从磁盘读取图像文件。wxBitmap则是在绘制的时候需要用到的,dc只能通过这个来得到图像信息。这两者相辅相成,所以,wxBitmap::ConvertToImage()可以把一个bitmap转化成image,而wxBitmap有构造函数可以直接从一个wxImage构造出一个wxBitmap。
1、wxImage::InitAlpha()
这个方法能给没有alpha的image初始化出alpha通道出来,
2、wxImage::IsTransparent(int x, int y, unsigned char threhold = 128)
这个方法判断x,y处的像素是否是透明的。
3、wxImage::Rotate(angle, centerofpoint, interpolation)
让图片绕某个点旋转,第三个参数决定是用插值算法来给新的图像像素来赋值,还是直接用0。用0的话可以调试用,可以看到新的图像的框架。
非常需要注意的是,rotate后的图片,实际上是一个宽度和高度都大于等于原图的图片(仍然是矩形),rotate代码会在原图的基础上填充黑色作为填充色(如果有mask,则是mask颜色)。所以,如果要处理图像编辑软件,想实现让用户在原来的图片位置按中心旋转的效果,必须考虑实际上图片大小变化了,需要移动相应的距离来让用户感受到图像绕中心在旋转。这个偏移是:
(rotateWidth - originalWidth) / 2;
4、wxImage::SetAlpha (unsigned char *alpha = NULL,bool static_data = false)
这个可以给本来没有alpha通道的图像加上一个alpha通道,绘制的时候可以实现半透明效果。
类似方法:
void SetAlpha(int x, int y, unsigned c