|
@@ -185,9 +185,9 @@ namespace ImgAssist
|
|
|
GlobalFree(hDIB);
|
|
|
|
|
|
done:
|
|
|
- //DeleteObject(hbmWindow);
|
|
|
- //DeleteObject(hdcMemDC);
|
|
|
- //ReleaseDC(hWnd, hdcWindow);
|
|
|
+ DeleteObject(hbmpWindow);
|
|
|
+ DeleteObject(hdcMemDC);
|
|
|
+ ReleaseDC(hWnd, hdcWindow);
|
|
|
#if 0 // 原始的保留图片做法;
|
|
|
CFile file;
|
|
|
CFileException fep;
|
|
@@ -199,14 +199,24 @@ namespace ImgAssist
|
|
|
cv::Mat s22 = cv::imread("E:\\1.jpg");
|
|
|
cv::imwrite("E:\\2.jpg",s22);
|
|
|
#endif
|
|
|
+
|
|
|
+
|
|
|
//cv::Mat pic;
|
|
|
//int nChannels = bmpWindow.bmBitsPixel == 1 ? 1 : bmpWindow.bmBitsPixel / 8;
|
|
|
//pic.create(cv::Size(width, height), CV_8UC4);
|
|
|
//memcpy(pic.data, lpbitmap, dwBmpSize);
|
|
|
- cv::_InputArray pirArrary(pImgData, dwSizeofDIB);
|
|
|
- cv::Mat src = cv::imdecode(pirArrary, cv::IMREAD_COLOR);
|
|
|
- cv::imwrite("E:\\3.bmp", src); // 后缀不一样,得到的大小也不一样;
|
|
|
- cv::imwrite("E:\\3.jpg", src);
|
|
|
+ if (pImgData)
|
|
|
+ {
|
|
|
+ cv::_InputArray pirArrary(pImgData, dwSizeofDIB);
|
|
|
+ cv::Mat src = cv::imdecode(pirArrary, cv::IMREAD_COLOR);
|
|
|
+ delete[]pImgData;
|
|
|
+ pImgData = NULL;
|
|
|
+#ifdef DEBUG
|
|
|
+ cv::imwrite("E:\\3.bmp", src); // 后缀不一样,得到的大小也不一样;
|
|
|
+ cv::imwrite("E:\\3.jpg", src);
|
|
|
+#endif
|
|
|
+ return src;
|
|
|
+ }
|
|
|
|
|
|
#if 0 // 能保存截图,但是被270度镜像;
|
|
|
cv::Mat matPic(height, width, CV_8UC4, pImgData + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER));
|