java实现image等比缩放
时间: 2023-07-27 21:28:59 浏览: 106
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Java中可以使用`java.awt.Image`和`java.awt.image.BufferedImage`类实现对图片等比缩放的功能。以下是示例代码:
```java
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageResize {
public static void main(String[] args) throws IOException {
// 读取图片
File file = new File("image.jpg");
BufferedImage originalImage = ImageIO.read(file);
// 计算缩放后的宽和高
int width = originalImage.getWidth();
int height = originalImage.getHeight();
int scaledWidth = 200; // 缩放后的宽度
int scaledHeight = (int) ((double) scaledWidth / width * height); // 缩放后的高度,保持宽高比不变
// 创建缩放后的图片
BufferedImage scaledImage = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = scaledImage.createGraphics();
g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
g.dispose();
// 将缩放后的图片保存到文件
File scaledFile = new File("scaledImage.jpg");
ImageIO.write(scaledImage, "jpg", scaledFile);
}
}
```
其中,`Graphics2D`类的`drawImage`方法用于绘制缩放后的图片,前两个参数为图片的位置,后两个参数为缩放后的宽和高。`BufferedImage`类的`createGraphics`方法用于创建一个`Graphics2D`对象,用于绘制图像。最后使用`ImageIO`类的`write`方法将缩放后的图片保存到文件。
阅读全文