我想把动画的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呢?
发布于 2022-03-23 15:59:51
使用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);
});
https://github.com/b4rtaz/android-webp-encoder (动画)编码器
gif编码器解码器:
implementation ('io.github.waynejo:androidndkgif:1.0.1')
https://stackoverflow.com/questions/70996986
复制相似问题