2013-06-17 3 views
1

몇 가지 문서와 예제를 읽었지만 이해하지 못했습니다. HDC에서 awt.Graphics으로 변환 할 수 없습니까?GDI32.HDC에서 awt.Graphics로 변환

나는 이미이 문제를 해결하는 해답을 알고 있지만 모두 매우 구체적입니다. 결국 화면에 그려서 저장된 이미지를 조작하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 BufferedImageHDC 사이에서 변환하는 것입니다. 왜냐하면 드로잉은 awt을 사용하여 매우 간단하기 때문입니다.

방금 ​​JNA에 대해 알게되었는데, 이것은 아마도 매우 어리석은 질문 일 것입니다. 아마도 C 또는 C++로 작업 한 적이 없다는 것을 의미하지는 않습니다. 어쨌든, 난 여기 갇혀있어 : 당신이 직접 한 형식에서 픽셀 값을 읽어 대상에 기록 할 수도 있지만, 호환되는 비트 맵

public static void main(String[] args) 
{ 
    GDI32 GDI = GDI32.INSTANCE; 
    User32 user32 = (User32) Native.loadLibrary("user32", User32.class); 
    HWND win = user32.GetForegroundWindow(); 
    HDC winDC = user32.GetDC(win); 
    HBITMAP bi = GDI.CreateCompatibleBitmap(winDC, 1024, 1024); 
} 

답변

0

가장 좋은 방법은, 정수 값의 배열입니다. JNA는 Java Graphics 생성 이미지에서 Windows HDC로 픽셀을 WindowUtils.java으로 전송합니다.

windows를 무언가로 변환하려면 BufferedImage으로 그려야합니다. Windows 이미지를 픽셀로 추출한 다음 BufferedImage에 써야합니다.