(PECL imagick 2, PECL imagick 3)
ImagickDraw::pushPattern — 指示后续命令到 ImagickDraw::opPattern() 命令,构成一个命名图案的定义
$pattern_id
,$x
,$y
,$width
,$height
此函数目前没有文档;只有它的参数列表可用。
指示后续命令到 DrawPopPattern() 命令,构成一个命名图案的定义。图案空间被分配左上角坐标,宽度和高度,并成为它自己的绘图空间。图案定义中可以使用任何可以绘制的元素。命名图案可以用作描边或画笔定义。
pattern_id
图案 ID
x
左上角的 x 坐标
y
左上角的 y 坐标
width
图案的宽度
height
图案的高度
示例 #1 ImagickDraw::pushPattern() 示例
<?php
function pushPattern($strokeColor, $fillColor, $backgroundColor) {
$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->pushPattern("MyFirstPattern", 0, 0, 50, 50);
for ($x = 0; $x < 50; $x += 10) {
for ($y = 0; $y < 50; $y += 5) {
$positionX = $x + (($y / 5) % 5);
$draw->rectangle($positionX, $y, $positionX + 5, $y + 5);
}
}
$draw->popPattern();
$draw->setFillOpacity(0);
$draw->rectangle(100, 100, 400, 400);
$draw->setFillOpacity(1);
$draw->setFillOpacity(1);
$draw->push();
$draw->setFillPatternURL('#MyFirstPattern');
$draw->setFillColor('yellow');
$draw->rectangle(100, 100, 400, 400);
$draw->pop();
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}
?>