нет делегата декодирования для этого формата изображения-Imagick-php


$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 2

1 ответ:

Согласно инструкции, 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);