图像输出
利用CDC类的位图图函数输出位图到设备上下文
BOOL BitBlt(int x,int y,int width,int height,CDC *pSrcDC,int xSrc,int ySrc,DWORD dwRop)
x,y表示目标区域左上角坐标
widthheigth 表示位图分大小
pSrcDC 表示源设备上下文指针
xSrc,ySrc表示源设备上下文起点坐标,函数从该起点复制位图到目标设备
dwRop 表示光栅操作代码
BOOL StretchBlt(int x,int y,int width,int height,CDC *pSrcDC,int xSrc.int ySrc,int Srcwidth,int Srcheight,DWORD dwRop)
nSrcwidth nsrcheight表示赋值的位图高度
在OnPaint()函数中
else
{
CDC *pDC=GetDC();
CDC memDC;//定义一个设备上下文
memDC.CreateCompatibleDC(pDC); //创建兼容的设备上下文
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1); //载入位图
memDC.SelectObject(&bmp);
pDC->BitBlt(30,20,230,240,&memDC,1,1,SRCCOPY); //绘制位图
CRect rc(30,20,260,260);
CBrush brush(RGB(0,0,0));
pDC->FrameRect(rc,&brush);//绘制矩形边框
rc.OffsetRect(240,0);//移动边框
BITMAP bitinfo;
bmp.GetBitmap(&bitinfo); //获取位图信息
int x=bitinfo.bmWidth;
int y=bitinfo.bmHeight;
pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc.Heigh(),&memDC,0,0,x,y,SRCCOPY);
pDC->FrameRect(rc,&brush);
brush.DeleteObject();
bmp.DeleteObject();
memDC.DeleteDC();
CDialog::OnPaint();
}
2:显示磁盘中的位图文件LoadImage()
HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT utype,int cxDesired,int cyDesired,UINT fuLoad)
hinst包含图像的实例句柄
lpszname 图像的资源名称,如果从磁盘加载,则是图像的名称,包含全部路径
utype表示加载类型,IMAGE_BITMAP表示加载位图,IMAGE_CURSOR表示加载鼠标,
IMAGE_ICON表示加载同图标
cxdesired cyDesired表示图标或鼠标 的宽高,是位图时都是0
fuLoad表示加载类型LR_LOADTROMFILE表示从磁盘加载位图
返回值是加载的图像资源的句柄,为了根据资源句柄将位图输出到窗口,需要将位图对象CBitmap关联到位图句柄上,调用Attach()方法
bmp.Attach(m_hBmp)
在OnPaint()函数中
if(m_hbitmap)
{
CDC *pdc=GetDC();
CBitmap bmp;
bmp.Attach(m_hbitmap);//将位图句柄关联到位图对象
CDC memDC;
memDC.CreateCompatibleDC(pdc);
memDC.SelectObject(&bmp);
BITMAP bitinfo;
bmp.GetBitmap(&bitinfo);
int x=bitinfo.bmWidth;
int y=bitinfo.bmHeight;
pdc->BitBlt(10,50,x,y,&memDC,0,0,SRCCOPY);
bmp.DeleteObject();
memDC.DeleteDC();
在处理按钮时
void CLoadBmpDlg::OnButton1()
{
CFileDialog fl(TRUE,"bmp","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"位图文件|*.bmp||");
if(fl.DoModal()==IDOK)
{
CString file=fl.GetPathName();//获取文文件名
m_edit.SetWindowText(file);
if(m_hbitmap!=NULL)
{
DeleteObject(m_hbitmap);
m_hbitmap=NULL;
}
m_hbitmap=(HBITMAP)LoadImage(NULL,file,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
OnPaint();
}
}
分享到:
相关推荐
虚拟打印机 将各类文档虚拟打印以图片输出 将产生一个名为Microsoft Office Document Image Writer的打印机 选择后打印。将提示图片保存位置和路径
读取bmp格式图片,输出图片的RGB值存在txt文件中。
ArcEngine地图图片输出
simulink选用示波器直接输出图像更直观简单易操作易修改 2. 全网simulink示波器输出图像版本低方法老旧已经不能实现 3. simulink选用示波器直接输出图像如何保证清晰度 4. simulink选用示波器直接输出图像如何...
ffmpeg录像主要分为两部分:1、构造yuv420数据 2、构造aac声音 将图像yuv420和aac用pts和dts进行同步 然后写到mp4文件 更多原理请参考我的博客
SGD验证代码,图像输出,如有疑问提交本人,不喜欢勿喷。
matlab图像输出设置.docx
qrcode2console:链接生成二维码输出到console或者是二维码图片输出到console
数字图像输出分辨率对照表,使用高品质的图片,可以打印出更精美的照片。图像分辨率要高于对照表的分辨率,请认真对照。
显示接口是指显卡与显示器、电视机等图像输出设备连接的接口。目前主要有以下几种,依次是S端子、VGA接口和DVI接口。
用C++实现控制台的图片输出,涉及对图片的处理,方法较创新。
基于硬件描述语言(HDL)设计的视频图像输出设计,本设计为设计源码,对相关领域的人员具有很好的参考意义。
操作Excel中图片输出到本地
用该js代码可以实现图片的等比输出,从而有效的避免图片输出后过大或严重变形的问题
这是一个将视频文件输出为图片的程序,基于opencv实现。
SpringMVC模式--从别的网站读取图片到自己网站上+++從本地讀取图片输出到页面++代码
SGD验证代码,图像输出,避免重复造轮子给大家整理了个,如有疑问请通知本人,不喜欢勿喷!!!
Origin2017解决图像输出存在水印的问题,本人亲测可以用于2017版本,低版本也可以用的。
STL模型转换为图片输出
读入图像后识别鼠标点击位置,输出x和y坐标并打印、保存到列表