1

我有一个在 PHP 中使用 GD 创建图像的脚本。我想使用 Imagick 来扭曲这个图像。现在我的 GD 脚本是这样结束的:

imagepng($img);
imagedestroy($img);

我删除了最后两行并将它们替换为:

$image = new imagick(); 
$image->readImageBlob($img);

但它不起作用,它会出现以下错误:

PHP Fatal error:  Uncaught exception 'ImagickException' with message 'Can not process empty Imagick object'

我不完全理解 readImageBlob 并且文档很糟糕,因此非常感谢任何帮助!

4

1 回答 1

2

readImageBlob函数将字符串作为参数,而不是 GD 资源Blob是二进制数据的字符串表示形式:因此您需要从 GD 资源中提取这些数据。

尝试以这种方式结束您的脚本:

ob_start();                   // starts output buffering
imagepng($img);               // writes image to that buffer
$blob = ob_get_clean();       // gets buffer as a string and clean it
$image = new imagick();  
$image->readImageBlob($blob);
于 2013-01-24T21:57:11.603 回答