2

jpanelの特定の領域をbufferedImage、または別のjpanelに表示される他の形式に変換する必要があります。

今までは、jpanel全体をbufferedImageに変換するコードしか見ていませんでしたが、私の場合は、jpanel内の領域だけが必要です。

ありがとう

4

4 に答える 4

2

画像を受信するために要求されたサイズでBufferedImageを作成します。
この画像に描画するためのGraphics2Dを入手し、JPanelにペイントさせます。

    JPanel panel = ...
    BufferedImage image = new BufferedImage(200, 200, TYPE_INT_ARGB);
    Graphics2D gg = image.createGraphics();
    try {
        gg.translate(-100, -20);  // start point of region negated
        panel.paint(gg);
    } finally {
        gg.dispose();
    }
于 2010-01-14T19:35:27.260 に答える
2

全体をに変換するコードがすでにあるので、それを使用して、結果をBufferedImage呼び出してサブリージョンを取得できます。getSubImageBufferedImage

于 2010-01-14T18:18:09.990 に答える
1

今までは、jpanel全体をbufferedImageに変換するコードしか見ていませんでしたが、私の場合は、jpanel内の領域だけが必要です。

次に、その画像を取得し、目的の領域を新しい画像に再描画します。これで完了です。

于 2010-01-14T18:17:27.980 に答える
0

最も簡単なのはおそらくRobot.createScreenCapture()でしょう。

パネルの座標系から画面の座標系に変換する必要があります。Component.getBounds()およびComponent.getLocationOnScreen( )を参照してください。

于 2010-01-14T18:17:17.247 に答える