没有这种图像格式的解码代表 - Imagick - php

时间:2014-10-30 06:20:40

标签: php image imagick resize-image

$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编码数据写一个图像。它的投掷错误

“此图片格式无解码代理”

1 个答案:

答案 0 :(得分: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);