public static String getCompressBase64FromUrl(String url, int width, int height) throws Exception {
BufferedImage img = ImageIO.read(new File(url));
int width1 = img.getWidth();
int height1 = img.getHeight();
BufferedImage tag = new BufferedImage(width1/2, height1/2, BufferedImage.TYPE_INT_RGB);
// Image.SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的优先级比速度高 生成的图片质量比较好 但速度慢
tag.getGraphics().drawImage(img.getScaledInstance(width1/2, -1, Image.SCALE_SMOOTH), 0, 0, null);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(tag, "jpeg", baos); // 这里也可以传 FileOutputStream 写进文件里
return new String(Base64.encodeBase64(baos.toByteArray()));
}
// main测试
// compressPic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放(默认为true))
public static void main(String[] arg) {
try {
String compressBase64FromUrl = getCompressBase64FromUrl("C:/Users/Administrator/Pictures/1/Penguins.jpg",100,200);
System.out.println(compressBase64FromUrl);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java绘制图片以原图为标准生成BASE64可以作压缩图片用
最新推荐文章于 2024-06-10 23:57:19 发布