PHP 中的 Imagick 不创建图像

Imagick in PHP doesn't create images

我无法在 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) 等根本没有效果,即使它们声称通过返回 [=18 成功=].错误输出似乎没有报告任何错误。在 GD 中一切正常,但我现在想切换到 Imagick,因为 GD 缺少功能。

所以这是怎么回事?我是否忘记了设置环境变量、调用准备函数,或者我只是完全误解了如何在 PHP 中使用 Imagick?

使用 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