SlimDX를 사용하여 영역을 캡처하려고합니다. 내가 의미하는 바는 [0,0]
에서 [1920,1080]
까지 캡처 할 생각이 없다는 것입니다. 바람직하게는 캡처에 필요한 정보가 들어있는 Rectangle 객체를 전달하고 싶습니다.SlimDX로 영역 캡처하기
CopyFromScreen
과 같은 대안을 살펴보면 캡처 시간이 크게 향상되므로 SlimDX (DirectX)로이 작업을 수행하고 싶습니다.
나는 100x100 픽셀의 약 30 청크를 캡처해야하며 DirectX를 사용하는 것이 최선의 방법이라고 생각합니다. 모든 시작 좌표와 너비/높이는 정수 배열에 저장됩니다.
나는 현재 다음과 같은 코드를 사용하고 있습니다 :
Rectangle rect = new Rectangle(chunk[0], chunk[1], chunk[2], chunk[3]);
Bitmap temp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);
Graphics g2 = Graphics.FromImage(temp);
g2.CopyFromScreen(rect.Left, rect.Top, 0, 0, temp.Size, CopyPixelOperation.SourceCopy);
이 코드는 foreach 루프에 거주하고있는 chunks
변수를 통해 반복합니다. 그러나 30 회 반복으로 완료하려면 약 500ms가 소요됩니다.
비트 맵과 그래픽을 재사용 할 수 있습니까? 반복 할 때마다 생성하고 삭제할 필요가 없습니다. –
반복 할 때마다 "좌표"가 다르기 때문에 필요합니다. 아니면 뭔가 다른 것을 의미합니까? – Arjan
나는 그것이 항상 100x100 픽셀이라고 언급 한 것을 보았습니다. –