こんにちは、奇妙な行動:getSubimage()関数が
私は私のJPanelのスクリーンショットを作成するには、次のコードを実行しています。
private void makePanelImage(Component panel, String saveAs) {
Dimension size = panel.getSize();
BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
// CROP
// BufferedImage cropped = image.getSubimage(9, 31, 2459, 3467);
BufferedImage cropped = image.getSubimage(1800, 2000, 500, 700);
Graphics2D g2 = cropped.createGraphics();
panel.paint(g2);
saveAs = saveAs + ".png";
try {
ImageIO.write(cropped, "png", new File(saveAs));
System.out.println("Image Saved: " + saveAs);
} catch (Exception e) {
e.printStackTrace();
}
}
問題の一部は次のとおりです。どんなに私はXとYを設定したもの
BufferedImage cropped = image.getSubimage(1800, 2000, 500, 700);
- 無視されて、それは常に取られます。それは0と0のようになります。そして私はなぜそれが分かりませんか?誰かがこれまでに遭遇したことはありますか? 2番目の部分 - 幅と高さは画像に影響を与えます。私はそれをできるだけ小さくすることができます - それはいいです。しかし、ラスタWONTの左上の「開始」が移動します。
これはバグですか?
注:私は+ WIDTHを相殺するためにそれを設定した瞬間、しかし面白いとは何ですか> ORIGINAL私はエラーを取得 - 論理的であるが、まだそれは文句を言わない得る
を「移動」私はここで何かをしないのですしてください?
を試すことができますか?新しい「BufferedImage」を作成してから、それの副画像を作成することができます。[mcve]を提供する場合は、手助けする方が簡単でしょう。 –
こんにちはジョン、あなたの返事をありがとう。私は本当にあなたが人口を意味するものを理解していない。考え方は、このメソッドはJPanelに適用可能であり、送信されたファイル名をJPanelに送信する必要があるということです。私はそれがもっと最小限になるとは思わない? –
それを実行するとうまくいきます... –