Jeff 2 vuotta sitten
vanhempi
commit
b88394f0c1
1 muutettua tiedostoa jossa 17 lisäystä ja 7 poistoa
  1. 17 7
      GameAssist/GameAssist/ImgAssist.cpp

+ 17 - 7
GameAssist/GameAssist/ImgAssist.cpp

@@ -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));