参数为图片地址(在浏览器可以直接访问的)
public static String getToPngFile(HttpServletRequest request, String url) throws IOException {
String imgTmpPath = null; // 临时图片文件路径
InputStream inputStream = null;
String imgsUrl = null; // 上传后的图片URL
try {
// 获取临时目录路径
String tmpdir = request.getSession().getServletContext().getRealPath("/") + "files/tmp/";
if (!FileUtil.exist(new File(tmpdir))){
FileUtil.mkdir(tmpdir);
}
//根据图片地址获取这个图片的输入流
inputStream = new URL(url).openStream();
// 读取输入流中的图片文件
BufferedImage inputImage = ImageIO.read(inputStream);
// 生成临时图片文件路径
imgTmpPath = tmpdir + IdUtil.objectId() + ".png";
// 创建临时图片文件
File outputFile = new File(imgTmpPath);
// 将图片文件转换为PNG格式并保存到临时文件中
ImageIO.write(inputImage, "png", outputFile);
// 获取临时文件的输入流
inputStream = FileUtil.getInputStream(imgTmpPath);
imgsUrl = OSSUtil.uploadImageToOSS(ImgUtils.getFileFormat(imgTmpPath), inputStream, AliyunOssConst.folder_voucher_img);
// 删除临时图片文件
FileUtil.del(imgTmpPath);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
inputStream.close();
}
}
return imgsUrl; // 返回上传后的图片URL
}