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 則註解

6
blah at blub dot com
15 年前
如果您的 imagick lib 開始顯示:「Non-conforming drawing primitive...」,則可能是您的地區設定未正確設定。請找出所有 setlocale 並暫時將它們關閉,以便檢查是否可以解決問題。
-2
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