获取某点的RGB三分量的值
前面我们借助于GDI+成功实现了图片的打开与显示,大家是否觉得GDI+的功能确实很强大呢?今天我们共同学习一下如何获取某点的RGB三分量的值,以及程序的淡出淡入的显示效果。
GDI+使用Color类表示颜色。Color类提供了对Alpha成分的支持,同时可以与GDI中表示颜色的COLORREF结构互相转换。
GDI+的Bitmap类是在Image类的基础上添加了对光栅图像的处理函数,它主要有三个功能:
1、提供图像的点操作,用户可以获得或修改图像上任意一点的颜色。
2、像素格式的转换。
3、可以对图像的一部分进行处理,例如改变灰度等。
大家不要看着它叫“Bitmap类”,这只是一个名字,它对常见的图像格式一般都支持,而不是仅限于位图。
首先创建图像对象。假设通过打开对话框获得的文件名为m_filename,那么图像对象的创建可以写作:Bitmap bitmap(m_filename.AllocSysString());然后创建颜色对象color。之后就可以通过利用Color类的GetAlpha(GetA)、GetRed(GetR)、GetGreen(GetG)、GetBlue(GetB)函数获取颜色的Alpha分量、Blue分量、Green分量和Red分量的值了。具体方法如下:
int i=100,j=100;
Bitmap bitmap(m_filename.AllocSysString());
Color color;
bitmap.GetPixel(i,j,&color);
int a = color.GetA();
int b = color.GetR();
int c = color.GetB();
int d = color.GetG();
有了RGB三分量的值,改变图像的透明度、亮度、对比度以及将图像转换为灰度图,是不是就变得很容易了呢?