【问题标题】:no decode delegate for this image format - Imagick - php这种图像格式没有解码委托 - Imagick - php
【发布时间】:2014-12-26 02:23:50
【问题描述】:
$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 编码数据编写图像。它的投掷错误 .

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

【问题讨论】:

  • readImageBlob 获取二进制字符串。首先解码$malestr的内容-使用函数base64_decode
  • 谢谢 Cherry,也请检查这个问题。坚持使用pbm。 stackoverflow.com/questions/26669087/…
  • 看这里并检查原始 $malestr(解码前)没有空格,其中 + 应该是 ngxo.com/search/image-upload/62
  • Cherry,这是我新问题的答案吗???
  • 我不知道,解码前检查字符串的内容-应该没有空格。

标签: php image imagick resize-image


【解决方案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);

【讨论】:

猜你喜欢
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 2018-04-22
  • 2019-04-25
相关资源
最近更新 更多