来自captureVisibleTab的base64解码图像。如何通过GD库保存到jpg ot png?

时间:2012-01-04 19:33:47

标签: php gd

我有这个代码将图像发送到test.php:

 chrome.browserAction.onClicked.addListener(function(tab) {
   chrome.tabs.captureVisibleTab(null, function(img) {

   $.ajax({
   type: "POST",
   url: "http://imap24.pl/tests/dom/testy/test.php",
   data: "img=" + img,
   success: function(e){
     alert(e);
   }});


   });
 });

img是base64(data:image / jpeg; base64,/ 9j / 4AAQSkZ ...)。我在test.php中有这个脚本

<?php
if (isset($_POST['img'])) {
$img = $_POST['img'];
$data = base64_decode($img);
$im = imagecreatefromstring($data);
imagejpeg($im, 'simpletext.jpg');
imagedestroy($im);
}
?>

结果我收到了这条消息

  

数据不是可识别的格式

怎么了?

1 个答案:

答案 0 :(得分:1)

正如您所述,图片如下所示:data:image/jpeg;base64,…
因此,您应该删除此数据URL的第一部分,然后将其直接写入文件:

$comma = strpos($img, ',');
$data = base64_decode(substr($img, $comma+1));
file_put_contents("simpletext.jpg", $data);