如何在 Android 中调整 GIF/动画 WebP 图像文件的大小?

问题描述 投票:0回答:1

我们如何在android中调整动画图像文件(如gif、动画webp或动画png文件)的大小?我不是在询问在图像视图上显示动画。我的目标是在调整大小后将动画图像文件保存在存储上。

我尝试了 glide,但我们必须编写复杂的代码来获取每个帧的位图,然后将该位图调整为特定大小或裁剪它,然后将所有这些帧编码回动画图像文件。

还有另一个名为 imagemagick 的库,但 Android 版本有一些问题,我无法使用它

APNG4ANDROID 是另一个库,看起来非常适合此操作,但它也存在一些问题,尽管它是显示动画图像的良好库。它不适用于调整大小的东西

java android kotlin gif webp
1个回答
2
投票

经过大量的搜索和实验,终于找到了解决方案。

GIF:

  • 使用解码器从 gif 中提取帧
  • 调整每个位图的大小。
  • 使用编码器将它们编码为 webp 或 gif

对于Webp:

  • (需要 Glid)使用给定的代码将帧提取为位图。
  • 调整它们的大小
  • 编码为gif/webp

(配合编码器使用也可以延迟)

Gif编码器解码器 https://github.com/waynejo/android-ndk-gif

Webp 编码器 https://github.com/b4rtaz/android-webp-encoder

使用Glide进行Webp解码: https://stackoverflow.com/a/64744296/9308731

调整大小: https://stackoverflow.com/a/32810187/9308731

© www.soinside.com 2019 - 2024. All rights reserved.