在使用CImage 往vc控件 picture Control 上贴图的时候图像显示不太正常如图:

CImage 往Picture Control贴图 图像显示不正常

 

已知原始图片的宽高为640*640  而我上面picture Control  控件宽高小于原始图像宽高。

从网上找到原因是因为: 图像被缩小显示了。DRAW默认的压缩算法显示后就是这样!

在 CImage::Draw 前面加这2句就能正常显示图片了

//设置缩放模式 halftone代表最高的压缩画质
SetStretchBltMode(pDC->m_hDC,HALFTONE);
SetBrushOrgEx(pDC->m_hDC,0,0,NULL);

//如果不想使用SetBrushOrgEx,前面只加一句
//COLORONCOLOR:删除像素。该模式删除所有消除的像素行,不保留其信息
SetStretchBltMode(pDC->m_hDC,COLORONCOLOR);

 

代码修改后:

SetStretchBltMode(pDC->m_hDC, HALFTONE);
SetBrushOrgEx(pDC->m_hDC, 0, 0, NULL);

image.Draw(pDC->m_hDC, rect); //将图片画到Picture控件表示的矩形区域 

效果图就正常了:

CImage 往Picture Control贴图 图像显示不正常

==========================================================================

参考:http://bbs.csdn.net/topics/390393574

相关文章:

  • 2021-04-16
  • 2021-12-06
  • 2022-02-15
  • 2021-04-17
  • 2021-12-07
  • 2022-12-23
  • 2021-09-01
猜你喜欢
  • 2021-07-08
  • 2021-07-20
  • 2021-11-03
  • 2021-09-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案