- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
发表于 2014-7-16 08:30:47
|
显示全部楼层
1、通过导入位图资源的方式,加载位图,当图片质量高时,不能预览,但是在资源视图里面已经存在,然后可以像自定义位图那样使用;
2、若使用的位图超过256色,则VC编译器打不开这些位图资源;
3、VC正常创建、处理的位图只有单色,16色,256色,不支持24位的位图格式;
注:这里涉及到的都是位图文件(*.bmp),通过导入资源的方式,VC不支持jpg格式资源,不过可用代码实现加载jpg或其他格式的图像文件;
//下边是一个从磁盘读取任一BMP文件的函数,然后显示在窗体指定坐标上。
OnOpenBMPImage()
{
CFileDialog fileDlg(true,(LPCTSTR)_T("BMP file"),(LPCTSTR)_T("*.bmp"),OFN_HIDEREADONLY,(LPCTSTR)_T("BMP FILE|*.bmp"),NULL);
if(fileDlg.DoModal() == IDOK)
{
HBITMAP m_hBmp=(HBITMAP)LoadImage(NULL,fileDlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
CClientDC dc(this);
CBitmap bmp;
bmp.Attach(m_hBmp);
CDC memdc;
memdc.CreateCompatibleDC(&dc);
memdc.SelectObject(&bmp);
BITMAP BitInfo;
bmp.GetBitmap(&BitInfo);
int x = BitInfo.bmWidth;
int y = BitInfo.bmHeight;
dc.BitBlt(0,0,x,y,&memdc,0,0,SRCCOPY);
bmp.Detach();
memdc.DeleteDC();
}
UpdateData(false);
} |
|