Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

发布时间:2023年12月17日

需求:

Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

代码实现:

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?ImageProcessor?{

????public?static?void?main(String[]?args)?{
????????String?inputImagePath?=?"input.jpg";?//?输入图片路径
????????String?outputImagePath?=?"output.jpg";?//?输出图片路径
????????int?targetWidth?=?1260;
????????int?targetHeight?=?945;

????????try?{
????????????BufferedImage?inputImage?=?ImageIO.read(new?File(inputImagePath));

????????????//?获取原始图片的尺寸
????????????int?originalWidth?=?inputImage.getWidth();
????????????int?originalHeight?=?inputImage.getHeight();

????????????//?创建一个新的?BufferedImage,用于存放处理后的图片
????????????BufferedImage?outputImage?=?new?BufferedImage(targetWidth,?targetHeight,?inputImage.getType());

????????????//?创建一个?Graphics2D?对象,用于绘制新图片
????????????Graphics2D?graphics?=?outputImage.createGraphics();

????????????//?如果原始图片尺寸大于目标尺寸,则进行压缩
????????????if?(originalWidth?>?targetWidth?||?originalHeight?>?targetHeight)?{
????????????????Image?scaledImage?=?inputImage.getScaledInstance(targetWidth,?targetHeight,?Image.SCALE_SMOOTH);
????????????????graphics.drawImage(scaledImage,?0,?0,?null);
????????????}?else?{
????????????????//?如果原始图片尺寸小于目标尺寸,则进行拉伸
????????????????graphics.drawImage(inputImage,?0,?0,?targetWidth,?targetHeight,?null);
????????????}

????????????//?释放资源
????????????graphics.dispose();

????????????//?保存处理后的图片
????????????ImageIO.write(outputImage,?"jpg",?new?File(outputImagePath));

????????????System.out.println("图片处理完成。");

????????}?catch?(IOException?e)?{
????????????e.printStackTrace();
????????}
????}
}

文章来源:https://blog.csdn.net/kaizi_1992/article/details/135037467
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。