$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. Его ошибка броска
,
«нет делегата декодирования для этого формата изображения»
Согласно инструкции, 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);
Других решений пока нет …