アプレット オブジェクトが与えられた場合、アプレット ウィンドウの「スクリーン ショット」(たとえば BufferedImage として表される) をプログラムで取得することは可能ですか?
JApplet applet = this;
// ... code here ...
BufferedImage screenshotOfApplet = ...;
アプレット オブジェクトが与えられた場合、アプレット ウィンドウの「スクリーン ショット」(たとえば BufferedImage として表される) をプログラムで取得することは可能ですか?
JApplet applet = this;
// ... code here ...
BufferedImage screenshotOfApplet = ...;
少なくとも Swing コンポーネントのみを使用している場合は、アプレットと同じサイズの BufferedImage を作成し、BufferedImage#getGraphics() から取得できる Graphics オブジェクトを使用してアプレットの paint メソッドを呼び出すことができると思います。実際に機能するかどうかをテストするためのテンプレート コードはここにはありませんが、試してみる価値はあると思います。
使用することもできますRobot.createScreenCapture(Rectangle bounds)
が、展開後にこれが機能するようにするには、アプレットに署名する必要があります。
コメント後-
アプレットコンポーネントだけが必要な場合-
BufferedImageを作成し、それにペイントすることができます-次のようになります:
public static BufferedImage imageFor(Component component) {
BufferedImage image = new BufferedImage(component.getWidth(),
component.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
component.paint(g);
return image;
}
アプレットに署名する必要があるかどうかはわかりません...
画面イメージ. JApplet で試したことはありませんが、JFrame と JDialog では問題なく動作します。
私はあなたが欲しいと思いますjava.awt.image.PixelGrabber
。(IIRC、大幅な減速の背後にあったのは、私が間違っているかもしれませんが、1.1から1.2へのJavaグラフィックスのパフォーマンスです。)