透明度的颜色值(第三个参数)为“none”。
(PECL imagick 2, PECL imagick 3)
Imagick::newImage — 创建新图像
创建一个新图像并关联 ImagickPixel 值作为背景颜色
cols
新图像中的列数
rows
新图像中的行数
background
此图像使用的背景颜色
format
图像格式。此参数在 Imagick 版本 2.0.1 中添加。
成功时返回 true
。
发生错误时抛出 ImagickException。
版本 | 描述 |
---|---|
PECL imagick 2.1.0 | 现在允许字符串表示颜色作为第三个参数。以前的版本只允许 ImagickPixel 对象。 |
示例 #1 使用 Imagick::newImage()
创建一个新图像并显示它。
<?php
$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;
?>
并非显而易见,cols 和 rows 参数对应于新图像的宽度和高度,以像素为单位。示例 #1 将生成一个 100 像素乘 100 像素的图像。
这并不明显,可能只与 ImageMagick 的某些特定版本有关(仅针对 6.7.7 和 6.8.9 测试),但 $cols 和 $rows 必须为正非零值。
<?php
$image = new Imagick();
$image->newImage(0, 100, new ImagickPixel('red'));
$image->setImageFormat('png');
file_put_contents('image.png', $image);
?>
在这种情况下,imagemagick 会崩溃,不会抛出任何异常,您将得到类似以下内容(在您的 apache 错误日志或控制台输出中)
无法获取缓存视图 `No such file or directory' @ fatal/cache-view.c/AcquireAuthenticCacheView/121。
这可能是您计算 $cols 和 $rows(例如,基于用户输入和预定义的目标图像 DPI)时的情况
<?php
$image = new Imagick();
$img->newImage($userInput->getWidth() * $defaultPpi, $userInput->getHeight() * $defaultPpi, new ImagickPixel('white'));
?>
在这种情况下,如果用户请求的图像宽度为 0.006 英寸(以英寸为单位),则该代码对于 $defaultPpi = 300 ppi 可以正常工作,但对于
$defaultPpi = 72 ppi