3

我需要将原始缓冲图像的大小调整为 100 px 并保留宽度/高度比。下面是正在使用的代码。有人可以帮我吗?提前致谢。

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();
4

3 回答 3

3

您可能想看看 imgscalr,它是一个简单的单个类,它使用一组简单的静态方法来完成此操作:http ://www.thebuzzmedia.com/software/imgscalr-java-image-scaling-图书馆/

示例用法如下所示:

BufferedImage img = Scalr.resize(src, 100);

如果您需要它们,还有许多关于质量、速度和简单图像操作的高级功能可供您使用,并且该库已在许多项目和 Web 应用程序的生产中部署。

于 2012-05-11T01:12:45.973 回答
2
int imageWidth = originalImage.getWidth();
int imageHeight = originalImage.getHeight();
height = imageHeight * width / imageWidth;
// Integer arithmetic doing lossless division last.

然而,高度现在可能小于或大于 100。

于 2012-05-09T12:27:44.240 回答
0

好吧,你能试试

int width = 100;
int height = 100;
height = originalImage.height() / (originalImage.width()/width)
于 2012-05-09T12:13:36.927 回答