我无法在PHP中使用Imagick来创建图像。这些函数都存在,但填充Imagick
对象的函数不起作用。
请看以下代码段:
<?php
$img = new Imagick();
$img->newImage(100, 80, new ImagickPixel("red"));
var_dump($img);
?>
输出结果为:
object(Imagick)#1 (0) {
}
var_dump($img->getSize())
的输出是:
Array
(
[columns] => 0
[rows] => 0
)
所以关键是我测试的所有图片创建功能(例如newImage($x, $y, $color)
,readImage($filename)
等)都没有任何效果,即使他们声称通过返回true
成功了。错误输出似乎没有报告错误。这一切在GD中运行良好,但我现在想切换到Imagick,因为GD缺乏功能。
这是怎么回事?我是否忘记设置环境变量,调用准备函数,还是我完全误解了如何在PHP中使用Imagick?
答案 0 :(得分:1)
使用newPseudoImage。
<?php
$img = new Imagick();
$img->newPseudoImage(100, 80, "xc:red");
$img->setImageFormat('png');
var_dump($img->getSize());
echo $img->getImageBlob();
我不知道为什么新图片不起作用 - 我已经为它打开了一个问题,因为你的代码不能正常工作https://github.com/mkoppanen/imagick/issues/148