java 实现图片等比例缩放
时间: 2023-08-31 10:06:14 浏览: 138
可以使用 Java 的 Image 类和 Graphics 类来实现图片等比例缩放。下面是一个简单的示例代码:
```java
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageScaler {
public static void main(String[] args) {
try {
// 读取原始图片
File inputFile = new File("input.jpg");
BufferedImage inputImage = ImageIO.read(inputFile);
int inputWidth = inputImage.getWidth();
int inputHeight = inputImage.getHeight();
// 计算缩放后的图片大小
int maxDimension = 800;
int outputWidth, outputHeight;
if (inputWidth > inputHeight) {
outputWidth = maxDimension;
outputHeight = maxDimension * inputHeight / inputWidth;
} else {
outputHeight = maxDimension;
outputWidth = maxDimension * inputWidth / inputHeight;
}
// 创建缩放后的图片
Image outputImage = inputImage.getScaledInstance(outputWidth, outputHeight, Image.SCALE_SMOOTH);
BufferedImage outputBufferedImage = new BufferedImage(outputWidth, outputHeight, BufferedImage.TYPE_INT_RGB);
Graphics graphics = outputBufferedImage.createGraphics();
graphics.drawImage(outputImage, 0, 0, null);
graphics.dispose();
// 保存缩放后的图片
File outputFile = new File("output.jpg");
ImageIO.write(outputBufferedImage, "jpg", outputFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先读取原始图片,并计算出缩放后的图片大小。然后,我们使用 Image 类的 getScaledInstance() 方法来缩放原始图片。接着,我们创建一个 BufferedImage 对象来保存缩放后的图片,并使用 Graphics 类的 drawImage() 方法将缩放后的图片绘制到 BufferedImage 上。最后,我们将缩放后的图片保存到文件中。
阅读全文