1

x、y 値をシフトして保存したい画像があります。私の問題は、イメージをシフトした後に x と y の「空白」スペースが残るように、元の寸法を維持したいということです。

また、「空白」スペースを黒に設定する方法はありますか?

例: 600x600 の画像を下に 45、左に 30 シフトすると、画像は 600x600 のままですが、結果には高さが 45、幅が 30 の「空白」スペースができます。

これまでのところ、これを解決するためにgetSubimageの方法を使用してきBufferedImageましたが、元の寸法に戻ることはできないようです。

この問題を解決する方法についてのアイデアはありますか?

4

2 に答える 2

1
public BufferedImage shiftImage(BufferedImage original, int x, int y) {
        BufferedImage result = new BufferedImage(original.getWidth() + x,
                original.getHeight() + y, original.getType());
        Graphics2D g2d = result.createGraphics();
        g2d.drawImage(original, x, y, null);
        return result;
    }

動作するはずです。

保存

 public void SaveImage(BufferedImage image, String filename) {
    File outputfile = new File(filename + ".png");
    try {
        ImageIO.write(image, "png", outputfile);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
于 2013-05-06T15:28:22.107 に答える