将 byte[] 数组转换为包含所有元数据的 GIF 文件

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

我得到了一个字节数组。我想将其转换为 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 文件吗?

java spring gif
1个回答
0
投票

如果您正在与

telegram API
合作。请记住,telegram 也可以处理没有
.mp4
之类声音的
gif
文件。您拥有的字节数组可能是一个
mp4
视频。

通常,当您直接从文件读取文件字节时,所有文件元数据都存在于字节中,当您将字节写回文件并在名称中设置正确的文件扩展名时,元数据也将存在,除非它存储的文件扩展名错误。

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