我得到了一个字节数组。我想将其转换为 GIF 文件。然而,当我尝试将其转换为 GIF 文件时,该文件不包含宽度、高度等元数据。
public String uploadGifFile(byte[] gif) {
File file = new File("file.gif");
try {
FileUtils.writeByteArrayToFile(file, gif);
} catch (IOException e) {
throw new RuntimeException(e);
}
String fileName = "gif/" + UUID.randomUUID() + ".gif";
amazonS3.putObject(bucketName, fileName, file);
return fileName;
}
如图所示,没有可用的元数据。但是,从 Internet 下载的其他 GIF 文件也包含这些数据。由于缺少元数据,我面临着 Telegram bot API 的一些问题(Telegram 自动将其转换为 WEBM 格式,这不适合我)。 据我了解,FileUtils 无法正确处理 GIF。
有什么方法可以将 byte[] 数组正确转换为 GIF 文件吗?
如果您正在与
telegram API
合作。请记住,telegram 也可以处理没有 .mp4
之类声音的 gif
文件。您拥有的字节数组可能是一个 mp4
视频。
通常,当您直接从文件读取文件字节时,所有文件元数据都存在于字节中,当您将字节写回文件并在名称中设置正确的文件扩展名时,元数据也将存在,除非它存储的文件扩展名错误。