1

いくつかのドキュメントと例を読みましたが、わかりません。HDCからに変換することは不可能awt.Graphicsですか?

これを解決する答えがすでにあることは知っていますが、それらはすべて非常に具体的です。最終的には画面に描画し、保存した画像を操作したいと考えています。BufferedImageこれを行う最善の方法は、 と の間で変換することだと思いHDCます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); 
}
4

1 に答える 1

0

互換性のあるビットマップの最善の策は、整数値の配列ですが、1 つの形式からピクセル値を直接読み取ってターゲットに書き込む必要がある場合があります。JNA は、Java Graphics で生成されたイメージからWindowUtils.javaの Windows HDC にピクセルを転送します。

Windows が描画したものを に変換するBufferedImage場合は、Windows の画像をピクセルとして抽出し、それらを に書き込む必要がありますBufferedImage

于 2013-06-18T13:56:46.687 に答える