gpt4 book ai didi

java - 获取 BufferedImage 所需的宽高比

转载 作者:行者123 更新时间:2023-12-02 07:01:52 24 4
gpt4 key购买 nike

我使用以下代码来调整图像大小,通过使用 getScaledInstance 函数,将一个参数设置为负数,我可以轻松获得与原始图像相同的宽高比,以便它自动保持其他参数来获取纵横比。但我面临的问题是 BufferedImage,我无法将其设置为所需的宽高比,因为我事先不知道它将生成什么高度值(宽度我已设置为 500) .我还包含了运行以下代码后可以获得的图像。 BufferedImage 我已设置为 800x600,因为我没有其他选择。我之前的问题是 resizing an image without compromising the aspect ratio

public class ResizeImage {
public static void main(String[] args) throws IOException {
BufferedImage img1 = new BufferedImage(800, 600,
BufferedImage.TYPE_INT_RGB);
img1.createGraphics()
.drawImage(
ImageIO.read(
new File(
"C:/Users/Public/Pictures/Sample Pictures/Desert.jpg"))
.getScaledInstance(500, -1, Image.SCALE_SMOOTH),
0, 0, null);
ImageIO.write(img1, "jpg", new File(
"C:/Users/Public/Pictures/Sample Pictures/test/Desert.jpg"));



}
}

BufferedImage creating extra blank background

最佳答案

您可以通过数学计算得到原始图像的长宽比

double ratio = img1.getWidth() / img1.getHeigth();

并使用此比率调用 getScaledInstance

blabla.getScaledInstance(500, (int)500 / ratio, Image.SCALE_SMOOTH);

关于java - 获取 BufferedImage 所需的宽高比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16548578/

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