Java 標準 API には Robot クラスがあり、スクリーンショットを実装し、マウスとキーボードの操作をシミュレートできます。ここではスクリーンショットのみを示します。
スクリーンショットを撮るための重要なメソッドは createScreenCapture(Rectangle rect) です。このメソッドには Rectangle オブジェクトが必要です。Rectangle を構築するのも非常に簡単です。
new Rectangle(int x, int y, int width, int height)、4 つのパラメータは、長方形の左上隅の x 座標、長方形の左上隅の y 座標、長方形の幅、そして長方形の高さ。スクリーンショット メソッドは BufferedImage オブジェクトを返します。サンプル コードは次のとおりです。
/** * 画面領域のスクリーンショットを指定し、スクリーンショットの BufferedImage オブジェクトを返す * @param x * @param y * @param width * @param height * @return */ public BufferedImage getScreenShot(int x, int y, int width, int height ) { BufferedImage bfImage = null; ロボット robot = new bfImage = robot.createScreenCapture(new Rectangle(x, y, width, height)); } catch (AWTException e) { e.printStackTrace() } return bfImage;
スクリーンショットをファイルとして保存する必要がある場合は、ImageIO.write(RenderedImage im, String formatName, File Output) のサンプル コードを使用します。
/** * 指定された画面領域のスクリーンショットを取得し、指定されたディレクトリに保存します * @param x * @param y * @param width * @param height * @param savePath - ファイルの保存パス * @param fileName - ファイルの保存name * @param format - ファイル形式*/ public void screenShotAsFile(int x, int y, int width, int height, String savePath, String fileName, String format) { try { Robot robot = new Robot(); BufferedImage bfImage = robot.createScreenCapture(new Rectangle(x, y, width, height)); ファイル パス = new File(savePath); ファイル ファイル = new File(path, fileName+ "." + format); 、フォーマット、ファイル); } catch (AWTException e) { e.printStackTrace() } catch (IOException e); e.printStackTrace() } }
スクリーンショットをキャプチャした後、おそらくそれをトリミングする必要があります。これには主に CropImageFilter と FilteredImageSource という 2 つのクラスが含まれます。これら 2 つのクラスの概要については、Java ドキュメントを参照してください。
/** *BufferedImage 画像のトリミング* @param srcBfImg - クリップされた BufferedImage * @param x - クリッピング ポイントの左上隅の X 座標 * @param y - クリッピング ポイントの左上隅の Y 座標 * @param width - 切り取った画像の幅* @param height - 切り取った画像の高さ* @切り取った BufferedImage を返す */ public BufferedImage CutBufferedImage(BufferedImage srcBfImg, int x, int y, int width, int height) { BufferedImage CutedImage = null; CropImageFilter CropFilter = new CropImageFilter(x, y, width, height); 画像イメージ img = Toolkit.getDefaultToolkit(); FilteredImageSource(srcBfImg.getSource(), CropFilter)); putedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); g.drawImage(img, 0, 0, null);破棄(); かわいい画像を返します。
トリミング後にトリミングしたファイルを保存する必要がある場合は、ImageIO.write を使用し、上記のコードを参照してスクリーンショットをファイルとして保存します。