화면의 일부를 캡처하는 빠르고 쉬운 방법이 있습니까? getpixel은 느 렸고 getDibits는 시작으로 약간 합의 된 것처럼 보였습니다.

StackOverflow https://stackoverflow.com/questions/859181

문제

Windows에서 getPixel을 사용하여 화면의 일부를 캡처하기 위해 일부 코드를 시도했으며 장치 컨텍스트가 NULL (창 대신 화면을 캡처하기 위해)이지만 실제로 느 렸습니다. getDibits ()가 빠를 수는 있지만 약간 합의 된 것 같습니다 ... 전체 영역을 어레이에 넣을 수있는 라이브러리가 있는지 궁금합니다. 픽셀 [x] [y]는 24 비트 색상을 반환합니다. 픽셀 코드?

아니면 그러한 라이브러리가 Mac에 존재합니까? 아니면 루비 나 파이썬이 이미 그렇게 할 수있는 라이브러리가 있다면?

도움이 되었습니까?

해결책

나는 이것을 한 번도 해본 적이 없지만 나는 다음을 시도한다.

  1. CreateCompatibledc를 사용하여 메모리 장치 컨텍스트 (DC)를 만듭니다.

  2. 캡처하는 영역과 동일한 크기의 비트 맵 (CreateCompatibleBitMap 사용)을 만듭니다.

  3. 생성 한 DC에서 비트 맵을 선택하십시오 (selectObject 사용).

  4. 데스크탑 DC에서 만든 DC까지 비트 블리트를 수행하십시오 (SRCCopy 플래그 사용).

장치 컨텍스트로 작업하면 잘못된 순서로 작업을 수행하면 GDI 누출이 발생할 수 있으므로 사용하는 모든 GDI 기능 (예 : SelectObject, GetDC 등)에 대한 설명서를 읽으십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top