工控编程吧
标题:
120上位机VC MFC图片反色效果显示
[打印本页]
作者:
qq263946146
时间:
2015-12-25 22:09
标题:
120上位机VC MFC图片反色效果显示
(, 下载次数: 0)
上传
点击文件名下载附件
120上位机VC MFC图片反色效果显示
功能展示
图片反色就是将图片中全部像素值进行取反操作,原来白色变成黑色等等,对一图像两次取反还是原来的图像。我们当前例程简单快速的实现指定位图的取反操作,效果如图;
要点提示
图像取反操作,我们当前例程用两种方法实现,第一种方法地是直接调用 DCD类的InvertRgn()函数,此函数用于指定区域的颜色取反;第二种方法是读取图片中每一像素点的RGB值,然后再对这些值进行取反操作;
实现功能
1.新建基于对话框的应用程序
2.向工程添加一位图,然后拖拽一图片控件,修改其ID为IDC_BMP,类型为位图,图片指定为刚添加位图的ID;再将此控件关联一变量CStatic m_Bmp;
3.添加一按钮控件,关联函数
void CGkbc8Dlg::OnButton1()
{
CDC* pDC = m_Bmp.GetDC();
CRect rect;
m_Bmp.GetClientRect(rect);
//方法一
CRgn rgn;
rgn.CreateRectRgn(rect.left,rect.top,rect.right,rect.bottom);
pDC->InvertRgn(&rgn);
/*
//方法二
BYTE r,g,b;
for (int i=1; i<rect.Width();i++)
for (int j=1;j<rect.Height();j++)
{
COLORREF clr= pDC->GetPixel(i,j);
r = GetRValue(clr);
g = GetGValue(clr);
b = GetBValue(clr);
复制代码
r = abs(255-r);
g = abs(255-g);
b = abs(255-b);
pDC->SetPixel(i,j,RGB(r,g,b));
}
*/
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/8b80b0cb855127be97751db4bb9ccfbb/0/0/w_19rt7ov4l1.swf-albumId=5088422809-tvId=5088422809-isPurchase=0-cnId=27[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4