VC保存当面某个区域的图片

void ViewReportDlg::CopyScreenToBitmap()
{
    CDC *cdc = this->GetDC();
    HDC wnd = cdc->GetSafeHdc();
    //CClientDC dc(this);

    CRect rect;
    BOOL  showMsgTag;                  //是否要弹出”图像保存成功对话框"
    this->GetClientRect(&rect);                  //获取画布大小

    HBITMAP hbitmap = CreateCompatibleBitmap(wnd, rect.right-rect.left, rect. bottom-rect.top);     //创建兼容位图

    HDC hdc = CreateCompatibleDC(wnd);      //创建兼容DC,以便将图像保存为不同的格式
    HBITMAP hOldMap = (HBITMAP)SelectObject(hdc,hbitmap);
    //将位图选入DC,并保存返回值
    BitBlt(hdc,0,0,rect.right-rect.left,rect.bottom-rect.top,wnd,0,0,SRCCOPY); 

    //将屏幕DC的图像复制到内存DC中
    CImage image;//需要
    image.Attach(hbitmap,CImage::DIBOR_DEFAULT);

    //image.Save(_T("c:\\B.jpg"));//如果文件后缀为.bmp,则保存为为bmp格式
    //以下程序用于选择图片保存路径等信息
    // 图像保存
    HRESULT hResult = image.Save(_T("E:\\4444.bmp"));
    if (FAILED(hResult))
        MessageBox("保存图像文件失败!");
    else
        MessageBox("保存图像文件成功!");
    image.Detach();
    ::SelectObject(hdc, hOldMap);//选入上次的返回值
    ::DeleteDC(hdc);
}
时间: 2024-10-13 07:31:05

VC保存当面某个区域的图片的相关文章

VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx

尽管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用API OleLoadPicture来加载JPG.GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCrea

根据size截取图片中间矩形区域的图片 这里的size是正方形

#pragma mark 根据size截取图片中间矩形区域的图片 这里的size是正方形 -(UIImage *)cutCenterImage:(UIImage *)image size:(CGSize)size{ CGSize imageSize = image.size; CGRect rect; //根据图片的大小计算出图片中间矩形区域的位置与大小 if (imageSize.width > imageSize.height) { float leftMargin = (imageSize

截图怎么保存为指定格式的图片

我们在日常生活中,经常会需要指定格式的图片,那么我们是不是有这样的困惑:截图怎么保存为指定格式的图片?如何截图和转变图片格式?电脑上的截图怎么变成jpg格式把电脑整个屏幕截了图后,怎么保存为图片jpg格式?桌面截图图片,怎么改格式截图截的图片怎样变为JPG图片格式?qq截图怎么转化成JPG怎样把QQ截图格式转换成别的格式 截图及图片处理教程 原文地址:http://blog.51cto.com/13172026/2177414

一个带自动询问和保存功能的python下载图片的脚本

http://placekitten.com 这个网站是爱猫人士做的网站,话说老外做网站就是简单,在网址上输入分辨率,就可以对应输出一个分辨率大小的猫图片,于是就做了这么一个小脚本,可以自己输出想要的尺寸,然后并且保存在自己的文件夹下. #注意!这个网站有些是打不开的,比如500X500对应的网页就是空的,所以如果尝试了500X500抓下来的图片是失效的,并不是脚本的问题.# #400X600,400X650,600X800这些都是好使的,可以拿来实验# import urllib.reques

SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库

@RequestMapping("upload") public void upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request,HttpServletResponse response, ModelMap model){ System.out.println("开始"); // String fi

如何保存几何画板文件为图片格式

几何画板在绘制完图片后保存的时候默认的是gsp文件,怎样才能保存为图片格式的文件呢?下面我们将介绍将几何画板文件保存为图片格式的方法. 方法一.直接保存文件为“emf”格式 绘制完成图片后,在“文件”菜单下选择“另存为”,在弹出的另存为对话框选择增强型图元文件“emf”格式保存.  几何画板中选择另存为时选择增强型图元文件类型 方法二.使用画图软件保存为图片格式 1.在几何画板制作好图画后,单击键盘“PrtSc”键截屏. 2.打开系统自带的画图软件,按住“Ctrl+V”组合键粘贴截屏.用“选择”

VC++使用CImage PNG转BMP图片透明背景处理

PNG格式的图片是支持透明通道的,BMP格式的图片是没有透明通道的,所以当PNG格式的图片转换为BMP格式时,对于PNG图片的透明背景就需要进行特别的处理. VC++中的HBITMAP是支持透明色的,如果HBITMAP是PNG格式图片的句柄,使用CImage:Save或其它方式保存到文件时,透明背景会变成黑色. 解决这个问题可以用GDI+.LIBPNG等,最简单的方式是使用CImage,直接将图像数据中的透明部分替换为白色或其他颜色. 优点:处理方法简单,效率高,只需CImage: 缺点:在图片

OpenCV Cut Image via ROI 根据兴趣区域剪裁图片

我们在使用OpenCV时,有时候需要对现有图片剪裁,比如只需要一个小窗口中的内容,那么我们可以通过OpenCV的兴趣区域 Region of Interest (ROI) 来很轻易的实现,操作也很简单,首先建立一个新的IplImage图片,大小为你需要剪裁出来的大小,然后建立一个该大小的CvRect变量,用来设定原图片的ROI的范围,然后此时拷贝原图片到新图片,就得到我们需要的内容了,最后别忘了把原图片的ROI还原,参见代码如下: IplImage *img = cvLoadImage("ima

openlayers 保存当前地图View为图片

/** * 保存地图为图片工具栏 */function addMapToolSavePicture() { var saveElement = document.createElement('a'); saveElement.className = "mapbtn glyphicon glyphicon-picture"; saveElement.setAttribute("data-toggle", "tooltip"); saveElemen