将GIF代码转换为GIF图像或输出到文件?

时间:2014-11-11 11:51:42

标签: javascript php gif ups

如果标题具有误导性,我并不确定如何言喻这一点。 我使用UPS的网络服务创建了一个发货标签,这是作为GIF返回的,但不是图像,而是长代码:

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

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

提前致谢!

2 个答案:

答案 0 :(得分:1)

字符串看起来像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);

答案 1 :(得分:0)

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

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

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