实在是折腾不动了,基本上百度谷歌上关于 Java 支持 webp 转换的文章全看过了,各个版本的 jar 包全试过了,自己编译也试过了,还是无效。
遇到的问题包括但不限于:NoSuchElementException 、找不到动态库。。。
现求助有过成功经验的兄弟,能否伸出援手。
需求:Springboot 项目,部署在 Centos 7 64 上,要求可以将上传的图片( jpg/png )转换为 webp 格式。
成功之后,支付宝 100 元,不知道有没有成功经验的兄弟。
实在没辙了,希望大家不要嫌少
1
cbdyzj 2022-10-05 12:32:30 +08:00 via Android
这个我弄过,不过在外面自驾游,下午空了给你写个 demo
|
3
suyabgaran 2022-10-05 12:44:40 +08:00
我弄了个 demo ,能用
|
4
suyabgaran 2022-10-05 12:47:51 +08:00
|
5
lixyz OP @suyabgaran
提示 java: 读取 D:\maven-repo\org\sejda\imageio\webp-imageio\0.1.6\webp-imageio-0.1.6.jar 时出错; error in opening zip file |
6
lixyz OP @suyabgaran 在 pom 文件中添加正常,在转换格式的时候提示上面那个错误。
|
7
suyabgaran 2022-10-05 13:23:05 +08:00
@lixyz 试试? mvn -U clean install
|
8
int0x03 2022-10-05 13:25:37 +08:00
读 jar 出错, 有时候是 jar 包损坏, 可以删除 这个文件夹: D:\maven-repo\org\sejda\imageio\ 然后重新 mvn clean install 再试试
|
9
ysc3839 2022-10-05 13:57:30 +08:00 via Android
ImageMagick 不行吗?
|
11
Bingchunmoli 2022-10-05 15:23:06 +08:00 via Android
本地 jar 包写过,当时只会终端输入输出写的
|
12
lixyz OP @suyabgaran @int0x03 都试过了,问题依旧,我怀疑是我 JDK 版本的问题?我用到是 1.8
@ysc3839 ImageMagick 之前考虑过,但是对于是否转换成功不太好获取,就放弃了 |
14
cbdyzj 2022-10-05 19:02:12 +08:00
|
15
sutra 2022-10-05 19:33:33 +08:00
> suyabgaran 6 小时 37 分钟前
> https://github.com/eGluZl/image2webp @lixyz > @suyabgaran 这个代码是可以在 Java 1.8 下工作的,把 java.version 改成 1.8 ,var 改成具体的类型就可以了。 |
16
maowu 2022-10-05 20:12:21 +08:00 via Android
楼主用的是 webp-imageio 这个库吗?
|
17
lixyz OP @suyabgaran @cbdyzj 你俩用的是一个库,我刚把所有 jar 包清空了,重新构建了,不成功啊
|
19
lixyz OP @suyabgaran @cbdyzj Windows 10 成功转换了,但是在 Centos 7 上不成功,我就是打包成 war 然后部署到服务器上啊。。。
|
20
suyabgaran 2022-10-05 22:55:33 +08:00
@lixyz 报什么错?
|
21
lixyz OP @suyabgaran 按照您代码中的转换方法,没有任何报错,只是 ImageIO.write 方法返回 false 。
按照 github 上另一个创建 ImageWriter 和 WebPWriteParam 来转换,会提示找不到 WebPWriteParam 类。 然后我又注意到一点,在右侧“外部库”中,webp-imageio 包没有办法像其他 jar 包一样可以展开。 但在 win10 系统上是正常的 |
22
lixyz OP https://github.com/liguobing/pic/blob/master/sp221005_234607.png?raw=true
像图片中一样,webp-imageio 无法像上一个 native-lib-loader 一样展开,是不是这里有什么问题? |
23
lixyz OP @suyabgaran
我刚才的描述可能有歧义 在 win10 上,用您代码中默认的方式可以转换成功,但是在 centos7 上 ImageIO.write 方法返回 false 。 同样在 win10 上,使用 github 上提供的另一个创建 ImageWriter 和 WebPWriteParam 来转换,会提示找不到 WebPWriteParam 类。 |
25
cbdyzj 2022-10-06 08:52:28 +08:00 via Android
这个库无法在 arm64 的平台工作
|
26
lixyz OP @cbdyzj cpu 是 Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz 腾讯云上的轻虚拟机
|
27
cbdyzj 2022-10-06 11:03:03 +08:00
可以+我 ID ,我下午空的,有意可以 Zoom 一下
|
29
cbdyzj 2022-10-06 11:09:55 +08:00
我的 V 站 ID 就绿色软件,+一下
|
31
narmgalaxy 2022-10-06 14:23:17 +08:00
啊这,谷歌 有转换工具,,直接在命令行调用, https://developers.google.com/speed/webp
|
32
narmgalaxy 2022-10-06 14:24:12 +08:00
ffmpeg 也可以做转换
|