2
$path=getcwd();
$rawstring = $_POST['img_data'];    
$malestr = str_replace("data:image/jpeg;base64,", "", $rawstring);
$img = new Imagick();
$img->readImageBlob($malestr);
$img->writeImage($path."/media/import/new.jpg");  

这是我的 Imagick 函数,我正在尝试使用 base64 编码数据编写图像。它的抛出错误。

“此图像格式没有解码委托”

4

1 回答 1

2

根据手册,Imagick::readImageBlob需要一个二进制字符串,而您正在向它提供一个 base64 编码的字符串。首先使用函数解码字符串base64_decode并将结果提供给readImageBlob.

// your code above
$malestr = str_replace("data:image/jpeg;base64,", "", $rawstring);

$malestr = base64_decode($malestr);
if (!$malestr) die('Unable to decode the string');

$img = new Imagick();
$img->readImageBlob($malestr);
于 2014-10-30T06:43:00.160 回答