我使用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是相同的),图像不会改变。
答案 0 :(得分:2)
我认为从中创建一个新的BufferedImage应该可以工作:
BufferedImage nImg = new BufferedImage(nW, nH, bufferedImage.getType());
Graphics2D g2d = nImg.createGraphics();
g2d.drawImage(bufferedImage, 0, 0, null);
g2d.dispose();