내 프로그램에서 Qt의 기능을 사용 중입니다. qApp->primaryScreen()->grabWindow(qApp->desktop()->winId(),x_offset,y_offset,w,h);
캡쳐 화면 캡쳐 화면 : native API vs opengl
1
A
답변
0
glReadPixels (반짝임 X, 반짝임 Y, GLsizei 폭, GLsizei 높이, GLenum 형식, GLenum 유형, GLvoid * data)은 위치 데이터에서 시작하여 클라이언트 블록으로 픽셀 블록을 읽습니다.
1
@ Zhenyi Luo의 대답을 확장하기 위해 여기에 제가 과거에 사용한 코드 조각이 있습니다.
또한 스크린 샷을 내보내는 데 FreeImage를 사용합니다.
void Display::SaveScreenShot (std::string FilePath, SCREENSHOT_FORMAT Format){
// Create Pixel Array
GLubyte* pixels = new GLubyte [3 * Window::width * Window::height];
// Read Pixels From Screen And Buffer Into Array
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glReadPixels (0, 0, Window::width, Window::height, GL_BGR, GL_UNSIGNED_BYTE, pixels);
// Convert To FreeImage And Save
FIBITMAP* image = FreeImage_ConvertFromRawBits (pixels, Window::width,
Window::height, 3 * Window::width, 24,
0x0000FF, 0xFF0000, 0x00FF00, false);
FreeImage_Save ((FREE_IMAGE_FORMAT) Format, image, FilePath.c_str(), 0);
// Free Resources
FreeImage_Unload (image);
delete [] (pixels);
}
+0
솔루션 다운로드 - 무료 이미지, 설치, 복사/붙여 넣기 코드를 시도했습니다. 이것은 이전의 메시지 전용 0 에서처럼 작동합니다. 아마 나는 "화면 인쇄"버튼과 같이 바탕 화면에서 픽셀을 읽을 필요가 있음을 상기시켜야 할 것입니다. 또는 어쩌면 나는 그것을 사용하는 몇 가지 기능을 몰라) –
관련 문제
- 1. 캡쳐 화면 캡쳐 메소드
- 2. 캡쳐 화면 캡쳐 화면 이미지 'Android'
- 3. 캡쳐 화면
- 4. 캡쳐 화면
- 5. 자바 전체 화면 캡쳐 화면
- 6. OpenGL/Direct3D 타사 응용 프로그램 캡쳐 화면
- 7. uiwindow 캡쳐 화면 캡쳐 화면 30fps (ui 애니메이션 포함)
- 8. android : 화면 캡쳐
- 9. OpenCV 캡쳐 데스크탑 화면
- 10. 코코아 화면 캡쳐?
- 11. OSX에서 자동 화면 캡쳐
- 12. 캡쳐하지 않고 화면 영역을 캡쳐
- 13. Youtube API - 특정 시간에 비디오의 캡쳐 화면
- 14. xna 4 바탕 화면 캡쳐 화면
- 15. 캡쳐 화면/비디오 파일의 프레임
- 16. MSDN 라이브러리로 여러 화면 캡쳐
- 17. iOS 앱에서 화면 캡쳐 금지
- 18. 창 캡쳐 화면 번호 확인
- 19. 브라우저 창 캡쳐 화면 생성
- 20. Nexus 10 에뮬레이터의 캡쳐 화면
- 21. iOS에서 캡쳐 화면 비디오, 특히 iPad Ratina
- 22. 웹 페이지 캡쳐 화면 캡처 (ASP.NET)
- 23. Selenium IDE 캡쳐 화면 파일 이름
- 24. 오프 스크린 요소를 포함한 HorizontalScrollView의 캡쳐 화면
- 25. 여러 대의 디스플레이에서 캡쳐 화면 캡처
- 26. 응용 프로그램 뒤에 자바 화면 캡쳐
- 27. 캡쳐 화면 프로그래밍 방식으로 작동하지 않습니다.
- 28. 변수로 안드로이드 adb 셸 화면 캡쳐 저장
- 29. C++ Directx11 캡쳐 화면 및 파일 저장
- 30. objective-c의 window 라이브 캡쳐 화면 받기
빠른 답장을 보내 주셔서 감사합니다. 나는 그것을 사용하려고했지만, 나는 올바르게했는지 확신 할 수 없다.'unsigned char pixels [4] = {0}; glReadPixels (0,0,500,500, GL_RGB, GL_UNSIGNED_INT, 픽셀);'. 그러나 나는 항상'pixels'가'glReadPixels' 다음에 0으로 채워지는 것을 보았습니다. 'glGetError'는 0을 반환합니다. –
크기가 4 인 픽셀을 할당하여 한 픽셀 만 읽을 수는 있지만 입력 값은 500 * 500 픽셀입니다. glReadPixels (0,0,1,1, GL_RGB, GL_UNSIGNED_INT, pixels); –
수정 됨! 그래서 지금은 여전히 0 점 만 남았습니다. –