Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小
2023-12-16 21:36:55

需求:
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!