【问题标题】:Covert GIF code to GIF image or output to file? [closed]将 GIF 代码转换为 GIF 图像或输出到文件? [关闭]
【发布时间】:2023-03-13 14:31:01
【问题描述】:

如果标题具有误导性,我不完全确定如何措辞。 我正在使用 UPS 的网络服务创建运输标签,它以 GIF 格式返回,但不是图像,而是长代码:

R0lGODdheAUgA+cAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09....... (etc)

我的问题是如何使用它来获取实际的 GIF 图像?最好输出到文件,并使用 JavaScript 或 PHP。

提前致谢!

【问题讨论】:

    标签: javascript php gif ups


    【解决方案1】:

    输出此内容(这是GIF图像的二进制内容)的代码必须在标头中向服务器声明此内容代表GIF图像(否则服务器不知道如何表示此内容)。因此,您在标头语句中的 PHP 代码应定义如下内容:

    header('Content-Type: image/gif');
    

    http://php.net/manual/en/function.imagegif.php

    【讨论】:

    • binary 值很多!
    • 不是二进制数据。它是base64 编码 二进制数据。简单地设置内容类型是行不通的。
    • 看看你的陈述“这不是二进制数据——它是base64编码的二进制数据”!!!那肯定是二进制数据,我没有说它是如何编码的。而且我并没有说只放置标题就足够了,我说它“应该定义类似的东西”指导 OP 在哪里找到确切的代码。
    • 你为什么对我的回答投了反对票?
    【解决方案2】:

    字符串看起来像 base64 编码的数据。假设它实际上是一张图像,那么您可以像这样解码它:

    $encodedGif = 'R0lGODdheAUgA+cAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBw...';
    $decodedGif = base64_decode($encodedGif, true);
    if ($decodedGif === false) {
        die('Data has been corrupted. Unable to decode.');
    }
    

    一旦你有解码的数据,你可以例如将其保存到文件中:

    $file = 'image.gif';
    if ( ! file_put_contents($file, $decodedGif)) {
        die('Saving image did not work!');
    }
    

    或者您可以将其作为 GIF 图像输出到浏览器:

    header('Content-Type: image/gif');
    die($decodedGif);
    

    【讨论】:

    • @user1952067 不客气。
    猜你喜欢
    • 2010-09-30
    • 2014-07-23
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2023-03-14
    • 2011-02-01
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多