MFC 二进制方式读取图片然后显示在对话框的PICTURE控件上

MFC 专栏收录该内容
1 篇文章 0 订阅
CFile file;
file.Open(_T("A.JPG"), CFile::modeRead);      //打开图像文件
DWORD dwDataLen = file.GetLength();        //获取文件的长度
BYTE *buf = new BYTE[dwDataLen];           //创建数组,用来保存图像的数据
memset(buf, 0x00, dwDataLen);              //初始化数组
file.Read(buf, dwDataLen);            //图像文件的数据保存在数组中
file.Close();                            //关闭文件


//CFile tempfile(_T("temp.jpg"), CFile::modeCreate | CFile::modeWrite);//创建文件temp.temp(扩展名任意)
//CArchive ar(&tempfile, CArchive::store); //创建缓冲区
//ar.Write(buf, dwDataLen);          //向缓冲区内写数据,buf为保存图像数据的数组,dwDataLen为数组的长度
//ar.Close();                       //关闭缓冲区
//tempfile.Close();                 //关闭文件




CImage image;
COleStreamFile osf;
osf.CreateMemoryStream(NULL);
osf.Write((void*)buf, dwDataLen);
osf.SeekToBegin();
image.Load(osf.GetStream());


CRect rect;//定义矩形类   
CWnd *pWnd = GetDlgItem(IDC_PICTURE1);//获得pictrue控件窗口的指针  
pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域   

CDC *pDC = pWnd->GetDC();//获得pictrue控件的DC   

pDC->SetStretchBltMode(COLORONCOLOR);//进行图像缩放处理避免图像显示时失真

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

ReleaseDC(pDC);//释放picture控件的DC  


收集整理吧 算是  其中被注释的那一段 是将载入的二进制图片再以图片的形式保存到硬盘中

  • 1
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值