0

我正在尝试使用 MS Tag Rest Interface (http://tag.ws.suddenelfilio.net/) 创建一些 Microsoft 标签。我有一个 API 密钥并且能够创建标签,不幸的是我真的不知道如何将它保存为图像。我已将“生成条形码”请求的结果保存为图像,大约 280k 大。不幸的是,它似乎不是一个有效的 jped 文件,imagecreatefromstring() 也不起作用。imagecreatefromstring 返回一个

"Warning: imagecreatefromstring() [function.imagecreatefromstring]: Data is not in a recognized format".

这是我返回的字符串的一小段:

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAdyCA8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQID

有人搞定这个吗?谢谢

4

2 回答 2

2

这看起来是 base64 编码解码它(使用base64_decode),然后再将其传递给imagecreatefromstring,或者在解码后保存它。

于 2012-07-25T23:02:40.723 回答
1

所以在 Musa 的帮助下,我终于想出了如何做到这一点,这是工作代码

谢谢,这是解决这个问题的关键部分。这是我现在工作的代码:

$url = 'http://tag.ws.suddenelfilio.net/mstagrest.svc/GenerateQRcode?at={access-token}&cn=Main&tn=Test&it=jpeg&s=1&ht=true';

// Get page content with curl   
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$pagecontent = curl_exec($ch); 
curl_close($ch);

// Decode it    
$pagecontent = base64_decode($pagecontent);
// Create Image
$im = imagecreatefromstring($pagecontent);
// Save as jpeg
header('Content-Type: image/jpeg');
imagejpeg($im, 'image.jpeg');       

imagedestroy($im);
于 2012-07-26T10:43:12.717 回答