我需要将原始缓冲图像调整为宽度100像素,并保留宽高比。以下是我正在使用的代码。有人可以帮我吗? 提前谢谢。
int width = 100;
int height = 100;
BufferedImage resizedImage = new BufferedImage(width, height, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, width, height, null);
g.dispose();
答案 0 :(得分:3)
你可能想看看imgscalr,它是一个简单的单个类,它使用一组简单的静态方法来完成这个:http://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-library/
示例用法如下:
BufferedImage img = Scalr.resize(src, 100);
如果您需要,还可以使用质量,速度和简单图像操作等许多高级功能,并且已在许多项目和Web应用程序中部署了库。
答案 1 :(得分:1)
int imageWidth = originalImage.getWidth();
int imageHeight = originalImage.getHeight();
height = imageHeight * width / imageWidth;
// Integer arithmetic doing lossless division last.
然而,身高现在可能小于或超过100。
答案 2 :(得分:0)
好吧,你能试试吗
int width = 100;
int height = 100;
height = originalImage.height() / (originalImage.width()/width)