فهرست منبع

Z991239-1812 #comment fix: 解决翻转问题

胡琛80272472 4 سال پیش
والد
کامیت
419a43bbc4
2فایلهای تغییر یافته به همراه44 افزوده شده و 5 حذف شده
  1. 33 5
      Module/mod_screenshot/mod_screenshot.cpp
  2. 11 0
      Module/mod_snapshot/mod_snapshot.cpp

+ 33 - 5
Module/mod_screenshot/mod_screenshot.cpp

@@ -312,6 +312,18 @@ public:
 				screencapture_clipoff(cx, cy, buf, 2, rcs);
 			}
 		}
+
+#ifndef RVC_OS_WIN
+		//linux需翻转图像
+		Dbg("size = %d, 3*width*height= %d", size, 3 * width * height);
+		IplImage* pImage = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
+		memcpy(pImage->imageData, buf, size);
+		cvFlip(pImage);
+		//cvSaveImage(".\\jietu_opencv.jpg", pImage);
+		memcpy(buf, pImage->imageData, size);
+		cvReleaseImage(&pImage);
+#endif
+
 		ChannelService_Send_Info Info;
 		Info.compress = false;
 		Info.encrypt = false;
@@ -399,6 +411,18 @@ public:
 				screencapture_clipoff(cx, cy, buf, 2, rcs);
 			}
 		}
+
+#ifndef RVC_OS_WIN
+		//linux需翻转图像
+		Dbg("size = %d, 3*width*height= %d", size, 3 * width * height);
+		IplImage* pImage = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
+		memcpy(pImage->imageData, buf, size);
+		cvFlip(pImage);
+		//cvSaveImage(".\\jietu_opencv.jpg", pImage);
+		memcpy(buf, pImage->imageData, size);
+		cvReleaseImage(&pImage);
+#endif
+
 		ChannelService_Send_Info Info;
 		Info.compress = false;
 		Info.encrypt = false;
@@ -431,12 +455,16 @@ public:
 			return;
 		}
 
-		//Dbg("size = %d, 3*width*height= %d", size, 3*width*height);
-		//IplImage *pImage = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
-		//memcpy(pImage->imageData, buf, size);
-		//cvFlip(pImage);
+#ifndef RVC_OS_WIN
+		//linux需翻转图像
+		Dbg("size = %d, 3*width*height= %d", size, 3*width*height);
+		IplImage *pImage = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);
+		memcpy(pImage->imageData, buf, size);
+		cvFlip(pImage);
 		//cvSaveImage(".\\jietu_opencv.jpg", pImage);
-		//cvReleaseImage(&pImage);
+		memcpy(buf, pImage->imageData, size);
+		cvReleaseImage(&pImage);
+#endif
 
 		// encode with jpeg2k
 		jpeg2k_coded_image codec_image = {0};

+ 11 - 0
Module/mod_snapshot/mod_snapshot.cpp

@@ -258,6 +258,17 @@ public:
 			}
 		}
 
+#ifndef RVC_OS_WIN
+		//linux需翻转图像
+		int size = frm->width * frm->height * 3;
+		IplImage* pImage = cvCreateImage(cvSize(frm->width, frm->height), IPL_DEPTH_8U, 3);
+		memcpy(pImage->imageData, frm->data[0], size);
+		cvFlip(pImage);
+		//cvSaveImage(".\\jietu_opencv.jpg", pImage);
+		memcpy(frm->data[0], pImage->imageData, size);
+		cvReleaseImage(&pImage);
+#endif
+
 		jpeg2k_coded_image codec_image = {0};
 		if((rc == 0)||(rc==Error_TimeOut)) 
 		{