【发布时间】:2023-04-03 07:06:01
【问题描述】:
我正在使用BufferedImage 来显示单个图像。我通过从getRaster() 获取像素数据而不是更改它来更改图像数据。如果我只改变像素值,它会很好用,但如果我改变像素数据数组的大小(宽度/高度),新的BufferedImage 将不会调整大小。
代码如下:
bufferedImage = new BufferedImage(img.width, img.height, bufferedImage.getType());
bufferedImage.getRaster().setDataElements(0, 0, img.width, img.height, img.pixels);
我还需要做什么才能更改bufferedImagesize?
例如,如果我让像素数组不变,只是交换宽度/高度(所以像素长度相同),图像不会改变。
【问题讨论】:
-
你能发布一个代码sn-p来演示这个问题吗?从当前的 sn-p 中,我不明白出了什么问题。如果您创建像
new BufferedImage(height, width, ...)和setDataElement(0, 0, height, width, ...)这样的图像,那么生成的图像肯定会与您创建(width, height, ...)时的图像不同 -
上面的代码是我用的。问题是初始的 BufferedImage 具有不同的宽度和高度,当我重新创建缓冲图像时,如果它具有不同的大小,它就不起作用。我认为这不是因为它,而是因为它的容器(ImageIcon 和 JLabel)没有应用大小更新。
-
问题是您发布的代码没有说明问题。它不编译/运行。最好编写一个小代码 sn-p 运行并演示您的问题,否则我怀疑人们将能够回答您的问题
标签: java awt bufferedimage