VS2010-MFC:MFC PictureControl控件上自适应显示图片,分图片失真或者图片不失真两种
来源:互联网 发布:ios开发书籍推荐知乎 编辑:程序博客网 时间:2024/05/22 17:20
MFC PictureControl控件上自适应显示图片,分图片失真或者图片不失真两种
ShowPicture(CString Filepath){ /*----根据图片文件路径显示图片---------------------------------*/int height, width;CRect rect;//定义矩形类CRect rect1;CImage image; //创建图片类image.Load(Filepath);//加载图片height = image.GetHeight();//得到图片高度width = image.GetWidth();//得到图片宽度m_showPMT.GetClientRect(&rect); //获得pictrue控件所在的矩形区域,m_showPMT为与PictureControl相关联的控件变量CDC *pDc = m_showPMT.GetDC();//获得pictrue控件的DcSetStretchBltMode(pDc->m_hDC,STRETCH_HALFTONE); if(width<=rect.Width() && height<=rect.Width()) //如果图片的尺寸小于图片控件尺寸,则不缩放显示{rect1 = CRect(rect.TopLeft(), CSize(width,height));image.StretchBlt(pDc->m_hDC,rect1,SRCCOPY); //将图片画到Picture控件表示的矩形区域}else//如果图片的尺寸大于图片控件的尺寸{float xScale=(float)rect.Width()/(float)width;//求X方向的缩放因子float yScale=(float)rect.Height()/(float)height;//求Y方向的缩放因子//为了图片在图片控件上显示不失真,采用X和Y方向上较小的缩放因子作为缩放因子,此时图片不失真,但是可能不会铺满整个图片控件区域float ScaleIndex=(xScale<=yScale?xScale:yScale);//rect1 = CRect(rect.TopLeft(), CSize((int)width*xScale,(int)height*xScale));//此时图片失真,但是会铺满整个图片控件区域rect1 = CRect(rect.TopLeft(), CSize((int)width*ScaleIndex,(int)height*ScaleIndex));image.StretchBlt(pDc->m_hDC,rect1,SRCCOPY); //将图片画到Picture控件表示的矩形区域}ReleaseDC(pDc);//释放picture控件的Dc}
图片失真,但是铺满整个图片控件区域:
图片不失真,但是没有铺满整个图片控件区域:
0 0
- VS2010-MFC:MFC PictureControl控件上自适应显示图片,分图片失真或者图片不失真两种
- MFC picture control控件不失真自适应图片显示
- MFC picture control控件不失真自适应图片显示
- MFC picture control控件不失真自适应图片显示
- MFC Picture Control 自适应控件大小显示图片,失真和不失真
- MFC界面Picture Control自适应不失真显示图片
- C++ 图片自适应 picture control 控件大小 不失真显示
- MFC显示图片/StretchDIBits失真/显示倒了
- vc++ mfc 里保存缩放的bmp图片 不失真
- 图片压缩不失真
- 不失真缩放图片
- ListView显示图片失真
- MFC的图片控件的使用(图片适应控件大小并不失真)
- 控制图片宽度或者高度且使图片不失真
- GTK在windwosXP+VS2010实现,图片打开、显示放大缩小功能(图片不失真)
- 图片不失真比例缩放
- 图片极致压缩,不失真
- 不失真的图片展示
- Nginx 限制单个IP的并发连接数及对每个连接速度(限速)
- Sublime Text 3 全程详细图文原创教程
- 二十二、UI-Grid 固定
- easyUI 展开DataGrid里面的行显示详细信息
- mysql单表查询语句
- VS2010-MFC:MFC PictureControl控件上自适应显示图片,分图片失真或者图片不失真两种
- 第七届 山东省ACM The Binding of Isaac(搜索OR暴力。。)
- Spring Boot读取自定义properties文件
- 配置服务器 —— 安装Mysql
- jsp实验1.基本使用
- 代码范例-进制转换[数组]
- Emgu学习笔记(四)---Canny、线检测、圆检测
- 【BZOJ】1085 [SCOI2005]骑士精神 IDA*
- linux下修改主机名