QQ登录

只需一步,快速开始

118上位机VC MFC图片浮雕效果显示

[ 复制链接 ]

118上位机VC MFC图片浮雕效果显示

118上位机VC MFC图片浮雕效果显示

118上位机VC MFC图片浮雕效果显示
功能展示
个别场合有用到浮雕效果的图片,我们当前例程将彩图转换成浮雕图片,效果如图;
要点提示
将图片进行浮雕效果处理,实际是将图片中每一个像素点进行处理后再显示。首先循环遍历图片的每一个像素,分别取出像素的RGB值,把这些值减去相邻像素的元素值再加上128,但相加的结果可能会小于0,或大于255,我们知道RGB的取值范围是在0—255间,所以我们再加将加减的结果再进行判断,如果小于0就让值为0,如果大于255,就让值为255,最后将三个处理后的RGB值赋予到原来的像素上,浮雕效果就实现了;
实现功能
1.新建基于对话框的应用程序
2.添加一位图再拖拽一位图控件,设置控件Id为IDC_BMP,类型设置为BITMAP,它的图片选择刚添加的位图ID;。最先将此控件关联一变量  CStatic  m_Bmp;
3.添加一按钮,关联一函数OnButton1()在此函数中实现浮雕效果;
  1. void CGkbc8Dlg::OnButton1() {CDC* pDC = m_Bmp.GetDC();
  2.         CRect rect ;
  3.         m_Bmp.GetClientRect(rect);
  4.         COLORREF color1,color2;
  5.         BYTE r,g,b;
  6.         for (int i = 0; i<rect.right;i++)
  7.                 for (int j = 0;j<rect.bottom;j++)
  8.                 {color1 = pDC->GetPixel(i,j);
  9.                         color2 = pDC->GetPixel(i+1,j+1);
  10.                         r = GetRValue(color1)-GetRValue(color2)+128;
  11.                         g = GetGValue(color1)-GetGValue(color2)+128;
  12.                         b = GetRValue(color1)-GetRValue(color2)+128;
  13.                         r=r>255?255:r;
  14.                         r=r<0?0:r;
  15.                         g=g>255?255:g;
  16.                         g=g<0?0:g;
  17.                         b=b>255?255:b;
  18.                         b=b<0?0:b;
  19.                         pDC->SetPixel(i,j,RGB(r,g,b));}}
复制代码
我们来演示实现的过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:118.上位机VC MFC图片浮雕效果显示.rar 
文件大小:287.65 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!



回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索