Java图片缩小后不失真的代码
时间: 2023-06-13 16:06:11 浏览: 71
可以使用 Java 中的 Image 类的 getScaledInstance() 方法来缩小图片并保持图片质量不失真。
下面是一个示例代码:
```
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
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) {
try {
// 指定原始图片路径
File originalImageFile = new File("original_image.jpg");
// 指定缩小后的图片路径
File resizedImageFile = new File("resized_image.jpg");
// 读取原始图片
BufferedImage originalImage = ImageIO.read(originalImageFile);
// 计算缩小后的图片大小
int width = originalImage.getWidth() / 2;
int height = originalImage.getHeight() / 2;
// 创建缩小后的图片
BufferedImage resizedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 缩小图片
Graphics2D g = resizedImage.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(originalImage, 0, 0, width, height, null);
g.dispose();
// 保存缩小后的图片
ImageIO.write(resizedImage, "jpg", resizedImageFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先指定原始图片路径和缩小后的图片路径,然后读取原始图片。接着计算缩小后的图片大小,并创建一个缩小后的图片。使用 Graphics2D 对象绘制缩小后的图片,设置 RenderingHints 来保持图片质量不失真。最后保存缩小后的图片。