图片压缩

1.采用 Thumbnail 公共类

2.采用 Thumbnail 方法

Thumbnails.of(inputStream) // of(filePath/inputStream) 使用源图片的路径或流,生成缩略图构造器

.sourceRegion(0, 0, imageWidth, imageHeight) // 截取源图中需要用于压缩的区域

.size(width, height) // 设置缩略图的高度和宽度

.keepAspectRatio(true) // 是否保持原来的长宽比

.toOutputStream(outputStream); // 将生成的缩略图直接一输出流的形式输出;

// .toFile(fileUrl); //或 将缩略图以图片文件的形式输出;

 

3.解决bug 

该方法爆出的UnsupportedFormatException:No suitable ImageReader 异常;

本人反复的出现这个异常,痛定思痛,查找各种资料,最后发现,

异常的真正原因是:原图文件被破坏,前面的inputstream已经被破坏了。

解决办法:使用base64 String 形式图片(String imageString),再解析为inputstream ,防止原图被破坏,压缩前加上代码如下;

InputStream inputStream = new ByteArrayInputStream(fastDFSUtil.generateImage(imageString));

注:fastDFSUtil.generateImage(imageString),将base64string 图片解码,转化为byte[]。

 

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐