首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android / java中将动画webp转换为gif?

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

Stack Overflow用户
提问于 2022-02-05 10:10:08
回答 1查看 391关注 0票数 1

我想把动画的webp文件转换成gif文件,并从几天后寻找解决方案,但没有得到任何简单的直接解决方案。

我尝试了ffmpeg,但是它不能完成工作,在寻找解决方案之后,我发现webp解码器还没有在ffmpeg中实现。https://trac.ffmpeg.org/ticket/4907

我还查看了google的libwebp库,他们还说不支持动态webp。https://developers.google.com/speed/webp/docs/dwebp

我尝试了这个库的示例,但也未能将动画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呢?

EN

回答 1

Stack Overflow用户

发布于 2022-03-23 15:59:51

使用gif编码器解码gif,然后使用webp编码器将其编码到webp中。您必须遍历每一个帧以进行编码和解码。

代码语言:javascript
运行
复制
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);
}); 

https://github.com/b4rtaz/android-webp-encoder (动画)编码器

gif编码器解码器:

代码语言:javascript
运行
复制
implementation ('io.github.waynejo:androidndkgif:1.0.1')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70996986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档