默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] 求助RainbowChat服务端头像压缩处理在JDK17、JDK8上的问题
今天遇到这么个情况,个人信息头像这块,有些图片上传成功,有些会失败。比如这张: [已解决] 求助RainbowChat服务端头像压缩处理在JDK17、JDK8上的问题_屏幕截图 2025-02-22 134315.png

1、运行环境是 OpenJDK17 + tomcat9 + ubuntu24

ImgEqualScaleAndCutHelper.saveImageAsJpg 这里报错,图片没传成功。

[已解决] 求助RainbowChat服务端头像压缩处理在JDK17、JDK8上的问题_WechatIMG390.jpg [已解决] 求助RainbowChat服务端头像压缩处理在JDK17、JDK8上的问题_截屏2025-02-28 08.35.20.png [已解决] 求助RainbowChat服务端头像压缩处理在JDK17、JDK8上的问题_截屏2025-02-28 08.35.37.png

2、运行环境是 OpenJDK8,图片可以上传成功,但是会变成一个纯黑色方块。
其他环境还没测试,这里有什么经验吗?我打算换个 oraclejdk8 试试。

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

WechatIMG391.jpg (1.31 MB, 下载次数: 6)

WechatIMG391.jpg

截屏2025-02-28 08.35.20.png (1.31 MB, 下载次数: 14)

截屏2025-02-28 08.35.20.png
上一篇:RainbowChat下载体验(包括二维码、下载链接、测试账号)
推荐方案
评论 3
你这JDK17上的异常信息显示的是图片文件不存在(FileNotFoundException),意思是图片文件没有上传成功?你可以加log调试下看看图片为啥没有上传成功

第二个异常openjdk8这里,黑块啥的,这个api是jdk的api实现的,jdk本身的图片处理api本身也不是特别强大,很说不会存在一些兼容问题。可以用源码多调试一下,看看具体是什么问题。

另外,JDK建议尽可能用Oracle官方的jdk,稳定可靠一些,不要用openjdk
引用:JackJiang 发表于 2025-02-28 11:01
你这JDK17上的异常信息显示的是图片文件不存在(FileNotFoundException),意思是图片文件没有上传成功?你 ...

JDK17是因为上传图片第一次压缩的时候没生成图片,导致第二次调用去做缩略图是报错了(找不到第一次的图片)。
JDK8 是因为两次生成都是纯黑色图片。

用了个类库解决了:
Thumbnails.of(new File(newFilePath))
                .size(width, height)
                .toFile(new File(newFileThumbPath));
引用:batizhao 发表于 2025-02-28 13:48
JDK17是因为上传图片第一次压缩的时候没生成图片,导致第二次调用去做缩略图是报错了(找不到第一次的图 ...

好的,下个版本我也把官方的这个图片处理给增强一下
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部