2015-04-07 260 views
0
I am using the below code from the library 

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

我想將下面給出的代碼轉換爲gif圖像文件,但無法實現它。我想解碼base64編碼的數據,這是圖像/ gif?我怎麼能在PHP中做到這一點?

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); 

我得到data_url低於

data:image/gif;base64,fDEwMDoxNjcuMSxELFBlbmNpbCwzLCMwMDB8MTAwOjE2Ny4xLFV8MTAwOjE2Ny4xLER8MTAyOjE2My4xLE18MTM1OjEyNS4xfDIwNjo5Ny4xfDI4OTo5OS4xfDMyMzoxMzQuMXwzMTY6MjUyLjF8MjA1OjMzMS4xfDIzNDoyNjAuMXw1MDQ6MTAyLjF8NTgxOjkyLjF8NjMxOjk1LjF8NjM1OjEzMi4xfDUxMjoyMDkuMSxVfDM4NToyOS4xLEQsLCwjNjZjfDM4NDoyOS4xLE18Mzg0OjQwLjF8Mzc4Ojg0LjF8MzY1OjE2OC4xfDM2MDoyMTUuMXwzNTQ6MjY5LjF8MzU0OjMwMC4xfDM1NzozMTMuMXw0MDU6MzE5LjF8NDUwOjMxNC4xfDUwNzoyOTEuMXw1NDY6MjYwLjF8NTM0OjIyMy4xfDQ4NzoxNzEuMXw0MTg6MTE5LjF8MjkwOjEzMS4xfDIyMDoyMDEuMXwxNjg6Mjg0LjF8MTU3OjMzOS4xfDE3MDozNTMuMXwyNTY6MzA4LjF8MzQ4OjIxMi4xfDM5MDoxMTguMXwzOTk6NzcuMXwzOTc6NjguMXwyOTg6ODIuMXwxNzY6MTY4LjF8OTA6MjY1LjF8NzA6MjkwLjF8NzA6MjkyLjF8MjUwOjE1MC4xfDQ2NToxNC4xfDU5NDotNDIuOXw2MDY6LTM5Ljl8NTUwOjI5LjF8NDQyOjE3MC4xfDMzNTozMjIuMXwyNTg6NDMwLjF8MjU4OjQzMC4xLFU=‏ 

給出我需要這個編碼代碼轉換爲GIF圖像文件。我怎樣才能實現它進一步

+1

$ pic ='sample.gif'; $ org_upload_path =「./upload/」; $ image_location = $ org_upload_path。$ pic; file_put_contents(「$ image_location」,base64_decode($ img)); –

+0

謝謝,@ kamlesh.bar,但我在js中使用了base_64編碼的上述代碼,我可以將它傳遞給php,但我沒有任何關於如何將其轉換爲圖像文件的想法,請你幫我解決與一個代碼將base64_encoded字符串轉換爲圖像gif? – harshal

+1

正如我上面提到的將編碼的字符串轉換爲文件,你可以做file_put_contents(「upload/sample.gif」,base64_decode($ img)); http://stackoverflow.com/questions/15153776/convert-base64-string-to-an-image-file –

回答

1

試試這個,可能這會幫助你

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

你正在使用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)); 
0

如果你只是想使用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); 

這將節省.gif文件圖像中的PHP文件所在的文件夾中。

相關問題