package com.qxnw.healthserver.core.util;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class AliossUtil {
/**目标图片大小,至于高度,等比例即可,ps:width在2000以上,已看不出区别*/
public static final int TARGET_WIDTH = 3000;
public static void main(String[] args) {
String url = "https://img1.360buyimg.com/image/jfs/t1/38591/20/3737/314695/5cc69c01E1838df09/dd6dce681bd23031.jpg";
resizeImg(url);
}
public static void resizeImg(String url){
try {
//通过url获取BufferedImage图像缓冲区
URL img = new URL(url);
BufferedImage image = ImageIO.read(img);
//获取图片的宽、高
double rate = image.getWidth()*1.0/image.getHeight();
int targetHeight = (int) (TARGET_WIDTH*1.0/rate);
//调整图片大小为 400X400尺寸
BufferedImage newImage = resizeImage(image,TARGET_WIDTH,targetHeight);
System.out.println("old:w,h= " + image.getWidth()+","+image.getHeight()+"\nnew:w,h="+TARGET_WIDTH+","+targetHeight);
//将缓冲区图片保存到 F:/test/pic1.jpg (文件不存在会自动创建文件保存,文件存在会覆盖原文件保存)
ImageIO.write(newImage, "jpg", new File("d:/a.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 通过BufferedImage图片流调整图片大小
*/
public static BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) throws IOException {
Image resultingImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_AREA_AVERAGING);
BufferedImage outputImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
outputImage.getGraphics().drawImage(resultingImage, 0, 0, null);
return outputImage;
}
}