Java BufferedImage设置了新的大小

时间:2015-05-08 14:56:23

标签: java awt bufferedimage

我使用BufferedImage来显示单张图片。我通过从getRaster()获取像素数据而不是更改它来更改图像数据。如果我只更改像素值,它会很有效,但如果我更改像素数据数组的大小(宽度/高度),新的BufferedImage将不会调整大小。

以下是代码:

bufferedImage = new BufferedImage(img.width, img.height, bufferedImage.getType());
bufferedImage.getRaster().setDataElements(0, 0,  img.width, img.height, img.pixels);

我需要做些什么才能更改bufferedImage尺寸?

例如,如果我让像素数组保持不变并且只是交换宽度/高度(因此pixels.length是相同的),图像不会改变。

1 个答案:

答案 0 :(得分:2)

我认为从中创建一个新的BufferedImage应该可以工作:

BufferedImage nImg = new BufferedImage(nW, nH, bufferedImage.getType());

Graphics2D g2d = nImg.createGraphics();
g2d.drawImage(bufferedImage, 0, 0, null);
g2d.dispose();