简体   繁体   English

我想解码为image / gif的base64编码数据吗? 如何在php中做到这一点?

[英]I want to decode base64 encoded data which is image/gif? How can I do that in php?

I am using the below code from the library

     [https://github.com/antimatter15/jsgif][1]

I would want to convert the code given below to gif image file but could not achieve it. 我想将下面给出的代码转换为gif图像文件,但无法实现。

    var encoder = new GIFEncoder();
            encoder.setRepeat(0);
            encoder.start();
            var st = '|100:167.1,D,Pencil,3,#000|100:167.1,U|100:167.1,D|102:163.1,M|135:125.1|206:97.1|289:99.1|323:134.1|3\
16:252.1|205:331.1|234:260.1|504:102.1|581:92.1|631:95.1|635:132.1|512:209.1,U|385:29.1,D,,,#66c|384:29.1,M|384:40.1|378:84.\
1|365:168.1|360:215.1|354:269.1|354:300.1|357:313.1|405:319.1|450:314.1|507:291.1|546:260.1|534:223.1|487:171.1|418:119.1|29\
0:131.1|220:201.1|168:284.1|157:339.1|170:353.1|256:308.1|348:212.1|390:118.1|399:77.1|397:68.1|298:82.1|176:168.1|90:265.1|\
70:290.1|70:292.1|250:150.1|465:14.1|594:-42.9|606:-39.9|550:29.1|442:170.1|335:322.1|258:430.1|258:430.1,U';
            var frames_array = st.split('|');
            $.each(frames_array,function(index,value) {
               encoder.addFrame(value);
                });
            encoder.finish();
            var binary_gif = encoder.stream().getData();
            var data_url = 'data:image/gif;base64,'+encode64(binary_gif);

What I get for data_url is as given below 我得到的data_url如下所示

data:image/gif;base64,fDEwMDoxNjcuMSxELFBlbmNpbCwzLCMwMDB8MTAwOjE2Ny4xLFV8MTAwOjE2Ny4xLER8MTAyOjE2My4xLE18MTM1OjEyNS4xfDIwNjo5Ny4xfDI4OTo5OS4xfDMyMzoxMzQuMXwzMTY6MjUyLjF8MjA1OjMzMS4xfDIzNDoyNjAuMXw1MDQ6MTAyLjF8NTgxOjkyLjF8NjMxOjk1LjF8NjM1OjEzMi4xfDUxMjoyMDkuMSxVfDM4NToyOS4xLEQsLCwjNjZjfDM4NDoyOS4xLE18Mzg0OjQwLjF8Mzc4Ojg0LjF8MzY1OjE2OC4xfDM2MDoyMTUuMXwzNTQ6MjY5LjF8MzU0OjMwMC4xfDM1NzozMTMuMXw0MDU6MzE5LjF8NDUwOjMxNC4xfDUwNzoyOTEuMXw1NDY6MjYwLjF8NTM0OjIyMy4xfDQ4NzoxNzEuMXw0MTg6MTE5LjF8MjkwOjEzMS4xfDIyMDoyMDEuMXwxNjg6Mjg0LjF8MTU3OjMzOS4xfDE3MDozNTMuMXwyNTY6MzA4LjF8MzQ4OjIxMi4xfDM5MDoxMTguMXwzOTk6NzcuMXwzOTc6NjguMXwyOTg6ODIuMXwxNzY6MTY4LjF8OTA6MjY1LjF8NzA6MjkwLjF8NzA6MjkyLjF8MjUwOjE1MC4xfDQ2NToxNC4xfDU5NDotNDIuOXw2MDY6LTM5Ljl8NTUwOjI5LjF8NDQyOjE3MC4xfDMzNTozMjIuMXwyNTg6NDMwLjF8MjU4OjQzMC4xLFU=‏

I need to convert this encoded code to an gif image file. 我需要将此编码的代码转换为gif图像文件。 How can I achieve it further 我如何进一步实现

try this , may this will help you 试试这个,可能对您有帮助

<?php
function base64url_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4,     '=', STR_PAD_RIGHT));
}
?>

Use this (PHP pseudo-code): http://php.net/manual/en/function.imagecreatefromstring.php 使用以下代码(PHP伪代码): http : //php.net/manual/zh/function.imagecreatefromstring.php

function imagegif_from_base64($base64)
{
    return imagecreatefromstring(base64_decode(substr($base64, 22) /* remove the "data:image/gif;base64," string */));
}

related get image from base64 string 相关从base64字符串获取图像

AS you are using jsgif library you You can do like this to decode image 当您使用jsgif库时,您可以像这样解码图像

    $imgstr = 'data:image/gif;base64,fDEwMDoxNjcuMSxELFBlbmNpbCwzLCMwMDB8MTAwOjE2Ny4xLFV8MTAwOjE2Ny4xLER8MTAyOjE2My4xLE18MTM1OjEyNS4xfDIwNjo5Ny4xfDI4OTo5OS4xfDMyMzoxMzQuMXwzMTY6MjUyLjF8MjA1OjMzMS4xfDIzNDoyNjAuMXw1MDQ6MTAyLjF8NTgxOjkyLjF8NjMxOjk1LjF8NjM1OjEzMi4xfDUxMjoyMDkuMSxVfDM4NToyOS4xLEQsLCwjNjZjfDM4NDoyOS4xLE18Mzg0OjQwLjF8Mzc4Ojg0LjF8MzY1OjE2OC4xfDM2MDoyMTUuMXwzNTQ6MjY5LjF8MzU0OjMwMC4xfDM1NzozMTMuMXw0MDU6MzE5LjF8NDUwOjMxNC4xfDUwNzoyOTEuMXw1NDY6MjYwLjF8NTM0OjIyMy4xfDQ4NzoxNzEuMXw0MTg6MTE5LjF8MjkwOjEzMS4xfDIyMDoyMDEuMXwxNjg6Mjg0LjF8MTU3OjMzOS4xfDE3MDozNTMuMXwyNTY6MzA4LjF8MzQ4OjIxMi4xfDM5MDoxMTguMXwzOTk6NzcuMXwzOTc6NjguMXwyOTg6ODIuMXwxNzY6MTY4LjF8OTA6MjY1LjF8NzA6MjkwLjF8NzA6MjkyLjF8MjUwOjE1MC4xfDQ2NToxNC4xfDU5NDotNDIuOXw2MDY6LTM5Ljl8NTUwOjI5LjF8NDQyOjE3MC4xfDMzNTozMjIuMXwyNTg6NDMwLjF8MjU4OjQzMC4xLFU=‏';
    $new_data=explode(";",$imgstr);
    $type=$new_data[0];
    $imgdata=explode(",",$new_data[1]);
    $imgstr = base64_decode($imgdata[1]);

    // or choose any name instead sample.gif
    file_put_contents("sample.gif", base64_decode($imgstr));

If you just wanna use PHP try this: 如果您只想使用PHP,请尝试以下操作:

$str = 'data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAA...';
$data = str_replace('data:image/gif;base64,', '', $str);
$data = str_replace(' ', '+', $data);

$data = base64_decode($data); // base64 decoded image data
$source_img = imagecreatefromstring($data);
$file = uniqid() .'.gif';
$success = file_put_contents($file, $data);

This will save the .gif image in the same folder the php file is located. 这会将.gif图像保存在php文件所在的文件夹中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我可以使用以Java编码的php中的base64解码数据吗? - Can I decode data with base64 in php which was encoded in java? 如何使用PHP / HTML将base64字符串(gif)解码为图像 - How to decode a base64 string (gif) into image in PHP / HTML 我有一个base64编码的png,如何将图像写入PHP中的文件? - I have a base64 encoded png, how do I write the image to a file in PHP? PHP 解码一个 base64 编码的字符串,这是 url 安全的 - PHP decode a base64 encoded string which is url safe 如何用JS / PHP解码base64编码的图像? (以前使用Actionscript编码) - How to decode base64 encoded image with JS/PHP? (previously encoded with Actionscript) 解码base64编码的签名以在php中映像 - decode base64 encoded signatures to image in php JAVA 如何解密 base64 编码和 RIJNDAEL_256 由 PHP 加密的数据? - How can JAVA decrypt data which was base64 encoded and RIJNDAEL_256 encryped by PHP? 如何从 PHP 中任何图像类型的 base64 字符串中去除 data:image 部分 - How can I strip the data:image part from a base64 string of any image type in PHP 如何使用storeas method()在laravel中存储base64编码的图像? - How do I store a base64 encoded image inside of laravel using the storeas method()? 如何编码/解码为 base64? - How can I encode/decode to base64?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM