gpt4 book ai didi

java - 如何在android/java中将动画webp转换为gif?

转载 作者:行者123 更新时间:2023-12-04 22:56:53 26 4
gpt4 key购买 nike

我想将动画 webp 文件转换为 gif 文件并在几天后寻找解决方案,但还没有得到任何简单的直接解决方案。
我尝试了 ffmpeg,但它无法完成这项工作,在寻找解决方案后,我发现 webp 解码器尚未在 ffmpeg 中实现。
https://trac.ffmpeg.org/ticket/4907
我还通过谷歌检查了 libwebp 库,他们还说不支持动画 webp。 https://developers.google.com/speed/webp/docs/dwebp
我尝试了 aspose 这个库的演示,也无法将动画 webp 转换为 gif。
https://products.aspose.com/imaging/java/conversion/webp-to-gif/
我认为 ImageMagick 可以将动画 webp 转换为 gif,但不知道如何在我的项目中实现它。
How can I avoid dropouts when using (imagemagick) `mogrify` to convert webp files to animated gif?
那么有没有简单的方法将webp转换为gif

最佳答案

使用 gif 编码器解码 gif,然后使用 webp 编码器编码成 webp。
您必须遍历每一帧进行编码和解码。

GifDecoder gifDecoder = new GifDecoder();
boolean isSucceeded = gifDecoder.load(src_file);
if (isSucceeded){
for (int i = 0; i < gifDecoder.frameNum(); ++i) {
Bitmap bitmap = gifDecoder.frame(i);
// push bitmaps into arrary
// push gifDecoder.delay into arryay for encoding
// you can also resize each frame
}
}

WebpBitmapEncoder webpEncoder = new WebpBitmapEncoder(dest_file)
for (int i = 0; i < bitmap.length; ++i) {
// gifEncoder.encodeFrame(bitmap[i], delays[i]);
webpEncoder.setDuration(delays[i]);
webpEncoder.writeFrame(bitmap[i], 80);
});
webp(动画)编码器: https://github.com/b4rtaz/android-webp-encoder
gif 编码器解码器:
implementation ('io.github.waynejo:androidndkgif:1.0.1')

关于java - 如何在android/java中将动画webp转换为gif?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70996986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com