javascript — конвертировать GIF-код в GIF-изображение или выводить в файл?

Я не совсем уверен, как это сформулировать, поэтому извиняюсь, если название вводит в заблуждение
Я использую веб-сервис UPS для создания этикетки доставки, она возвращается в виде GIF, но не в виде изображения, а в виде длинного кода:

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

У меня вопрос, как я могу использовать это, чтобы получить фактическое изображение GIF? желательно выводить в файл, используя либо JavaScript, либо PHP.

Заранее спасибо!

0

Решение

Строка выглядит как 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

Другие решения

Код, который выводит это содержимое (это двоичное содержимое изображения GIF), должен сообщить в заголовке серверу, что это содержимое представляет изображение GIF (в противном случае сервер не знает, как представить это содержимое). Таким образом, ваш PHP-код в выражении заголовка должен определять что-то вроде:

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

смотреть на http://php.net/manual/en/function.imagegif.php

0

По вопросам рекламы [email protected]