gpt4 book ai didi

java - 如何获取调整大小的BufferedImage

转载 作者:行者123 更新时间:2023-12-01 12:00:00 25 4
gpt4 key购买 nike

假设我有 2 个 TIF 图像,我将其中一张读入 BufferedImage 实例:

ImageReader reader = ImageIO.getImageReadersByFormatName("tif").next();
reader.setInput(inputStream, false); // inputStream is the first image.
BufferedImage bufferedImage = reader.read(0);

现在我想创建一个新的 BufferedImage 而不读取其他图像。它应该和上一个一样,只是大小不同。对于 TIF 图像,imageType 似乎为 0,但以下内容不起作用。

BufferedImage largeBufferedImage = new BufferedImage(newWidth, newHeight, 0);

有什么方法可以克隆现有的 BufferedImage 并仅更改其大小吗?

顺便说一句,我希望能够对任何图像格式执行此操作。如果可能的话,我不想处理像 imageType 这样的细节。

最佳答案

BufferedImage deepCopy(BufferedImage bi)/*method to clone BufferedImage*/ {
ColorModel cm = bi.getColorModel();
boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
WritableRaster raster = bi.copyData(null);
return new BufferedImage(cm, raster, isAlphaPremultiplied, null);
}
BufferedImage newImg = deepCopy(oldImg);//clone it
Graphics2D g = newImg.createGraphics();
g.drawImage(newImg, 0, 0, width, height, null);//newImg will be resized

关于java - 如何获取调整大小的BufferedImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com