似乎位图压缩正在使动画 WEBP 文件静态或其他什么,当我将它们用作动画贴纸文件时,我从 WhatsApp 收到一条错误,表明此贴纸包有问题。如果我通过将动画 _sticker 标志设置为 false 来使用静态 webp,则不会发生该错误。然后,WhatsApp 接受这些相同的动画 WEBP 文件作为静态贴纸包。在查看了所有代码后,我陷入了压缩并保存 WEBP 的方法。我应该确认那些 WEBP 文件是否仍然包含多个帧。如何检查帧数或检查文件在压缩/保存后是动画还是静态?
public static void Save(Bitmap bitmap1, String name1, String folder) {
File dir = new File(path + "/" + folder).mkdirs();
File file = new File(dir, name1);
if (file.exists())
file.delete();
try {
FileOutputStream ops = new FileOutputStream(file);
Bitmap1.compress(Bitmap.CompressFormat.WEBP, 90, ops);
ops.flush();
ops.close();
} catch (Exception e) {
e.printStackTrace();
}
}
最佳答案
不要使用 Bitmap.compress。它将存储单帧。相反,您可以使用不压缩的方式存储它
InputStream inputStream = new URL(sUrl).openStream();
copyInputStreamToFile(inputStream,file);
copyInputStreamToFile():您必须定义读取butes数组中的输入流并写入FileOutputStream的方法;
关于java - 如何在java中压缩动画webp而不将其转换为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70517477/