PHP Conference Japan 2024

Imagick::drawImage

(PECL imagick 2, PECL imagick 3)

Imagick::drawImage在当前图像上渲染 ImagickDraw 对象

描述

public Imagick::drawImage(ImagickDraw $draw): bool

在当前图像上渲染 ImagickDraw 对象。

参数

draw

要在图像上渲染的绘图操作。

返回值

成功时返回 true

添加注释

用户贡献的注释 2 个注释

blah at blub dot com
15 年前
如果您的 imagick 库开始显示:“Non-conforming drawing primitive...” ,则可能是您的区域设置未正确设置。请找到所有 setlocale 并暂时禁用它们,以便您可以检查这是否可以解决问题。
sualk at lednew dot de
16 年前
ImagickDraw (v 2.2.0) 似乎与 PHP-GTK2 (v 2.0.1) 不兼容。

如果加载了 php_gtk2.so,则在当前图像上渲染 ImagickDraw 对象将失败(或导致没有绘图的平坦图像)。

重现故障的代码

#!/usr/bin/php5
<?php
dl
("php_gtk2.so"); // 注释掉此行以进行第二次尝试

$string = "Hello world!";

$im = new Imagick();
$draw = new ImagickDraw();

$draw->setFillColor(new ImagickPixel('blue'));

$draw->setFontSize(28);

$metrix = $im->queryFontMetrics($draw, $string);

$draw->annotation(0,25,$string);

$im->newImage($metrix['textWidth'],$metrix['textHeight'], new ImagickPixel('white'));
$im->drawImage($draw);
$im->borderImage(new ImagickPixel('black'), 1, 1);
$im->setImageFormat('png');

$im->writeImage("./test.png");
?>
To Top