为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

屏幕截图

2017-12-22 4页 doc 16KB 27阅读

用户头像

is_648706

暂无简介

举报
屏幕截图屏幕截图 屏幕截图 GDI+ // bmp转jpg int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { // CLSID encoderClsid; // GetEncoderClsid(L"image/png", &encoderClsid); // GetEncoderClsid(L"image/bmp", &encoderClsid); // GetEncoderClsid(L"image/gif", &encoderClsid); // GetE...
屏幕截图
屏幕截图 屏幕截图 GDI+ // bmp转jpg int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { // CLSID encoderClsid; // GetEncoderClsid(L"image/png", &encoderClsid); // GetEncoderClsid(L"image/bmp", &encoderClsid); // GetEncoderClsid(L"image/gif", &encoderClsid); // GetEncoderClsid(L"image/jpeg", &encoderClsid); // GetEncoderClsid(L"image/tiff", &encoderClsid); UINT num= 0; UINT size= 0; ImageCodecInfo* pImageCodecInfo = NULL; GetImageEncodersSize(&num, &size); if(size== 0) { return -1; } pImageCodecInfo= (ImageCodecInfo*)(malloc(size)); if(pImageCodecInfo== NULL) { return -1; } GetImageEncoders(num, size, pImageCodecInfo); for(UINT j=0; j< num; ++j) { if(wcscmp(pImageCodecInfo[j].MimeType, format)== 0) { *pClsid= pImageCodecInfo[j].Clsid; free(pImageCodecInfo); return j; } } free(pImageCodecInfo); return -1; } void CScreenShotDlg::SaveScreenToJpg() { // 得到屏幕DC HWND hDeskWnd = ::GetDesktopWindow(); //获得屏幕的HWND. CDC *pDestDC = CDC::FromHandle(::GetDC(hDeskWnd)); //获取当前整个屏幕 DC int screenWidth = pDestDC->GetDeviceCaps(HORZRES); //屏幕宽 int screenHeight = pDestDC->GetDeviceCaps(VERTRES); //屏幕高 // 创建与屏幕兼容的Bitmap CBitmap memBitmap; memBitmap.CreateCompatibleBitmap(pDestDC, screenWidth, screenHeight); // 创建屏幕的内存DC CDC memDC; memDC.CreateCompatibleDC(pDestDC); // 将兼容Bitmap选入内存DC memDC.SelectObject(&memBitmap); // 将屏幕DC数据copy至内存DC memDC.BitBlt(0, 0, screenWidth, screenHeight, pDestDC, 0, 0, SRCCOPY); // 获得位图信息 BITMAP bmpInfo; memBitmap.GetBitmap(&bmpInfo); // 生成BITMAPINFO BITMAPINFO m_BITMAPINFO; memset(&m_BITMAPINFO, 0, sizeof(BITMAPINFO)); m_BITMAPINFO.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); m_BITMAPINFO.bmiHeader.biPlanes = 1; m_BITMAPINFO.bmiHeader.biBitCount = bmpInfo.bmBitsPixel; m_BITMAPINFO.bmiHeader.biCompression = BI_RGB; m_BITMAPINFO.bmiHeader.biWidth = bmpInfo.bmWidth; m_BITMAPINFO.bmiHeader.biHeight = bmpInfo.bmHeight; // 获取位图数据 BYTE * pBuffer = new BYTE[bmpInfo.bmWidthBytes * bmpInfo.bmHeight]; GetDIBits(memDC.m_hDC, (HBITMAP) memBitmap.m_hObject, 0, screenHeight, pBuffer, (LPBITMAPINFO) &m_BITMAPINFO, DIB_RGB_COLORS); // 生成位图 Bitmap *pSrcBmp = Bitmap::FromBITMAPINFO(&m_BITMAPINFO, (void*)pBuffer); // 保存成jpg文件 CLSID encoderClsid; GetEncoderClsid(L"image/jpeg", &encoderClsid); pSrcBmp->Save(L"d:\\destop.jpg", &encoderClsid); // 释放内存 delete pSrcBmp; delete pBuffer; ReleaseDC(pDestDC); }
/
本文档为【屏幕截图】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索