本文整理汇总了PHP中ImagickDraw::popPattern方法的典型用法代码示例。如果您正苦于以下问题:PHP ImagickDraw::popPattern方法的具体用法?PHP ImagickDraw::popPattern怎么用?PHP ImagickDraw::popPattern使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImagickDraw
的用法示例。
在下文中一共展示了ImagickDraw::popPattern方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: blackBox
function blackBox(&$canvas, $o) {
$rectangle = new Imagick();
$rectangle->newPseudoImage($o['w'], $o['h'], "xc:none");
$draw1 = new ImagickDraw();
$draw1->pushPattern('gradient', 0, 0, 5, 5);
$tile = new Imagick();
$tile->readImage(realpath("assets/diag_tile.png"));
$draw1->composite(Imagick::COMPOSITE_OVER, 0, 0, 5, 5, $tile);
$draw1->popPattern();
$draw1->setFillPatternURL('#gradient');
$draw1->rectangle(0, 0, $o['w'], $o['h']);
$rectangle->drawImage($draw1);
$gradient = new Imagick();
$gradient->newPseudoImage($o['w'], $o['h'], "gradient:#DDD-#666");
$rectangle->compositeImage($gradient, Imagick::COMPOSITE_COPYOPACITY, 0, 0);
$black = new Imagick();
$black->newPseudoImage($o['w'], $o['h'], "xc:black");
$layered = new Imagick();
$layered->newPseudoImage($o['w'] + 20, $o['h'] + 20, "xc:none");
$layered->compositeImage($black, Imagick::COMPOSITE_OVER, 5, 0);
$layered->compositeImage($black, Imagick::COMPOSITE_OVER, 5, 5);
$layered->compositeImage($gradient, Imagick::COMPOSITE_COPYOPACITY, 5, 5);
$layered->blurImage(4, 5, imagick::CHANNEL_ALPHA);
$layered->compositeImage($black, Imagick::COMPOSITE_DSTOUT, 0, 0);
$canvas->compositeImage($layered, Imagick::COMPOSITE_OVER, $o['x'], $o['y']);
$canvas->compositeImage($rectangle, Imagick::COMPOSITE_OVER, $o['x'], $o['y']);
}
示例2:
function __construct($chemin)
{
if (filter_var($chemin, FILTER_VALIDATE_URL)) {
//URL
$headers = @get_headers($chemin);
if (strpos($headers[0], '404') != false) {
//NOT FOUND
//throw new \Exception("Not Found Image");
$this->image = new \Imagick();
$this->image->newImage(600, 600, new \ImagickPixel('white'));
/* Création d'un nouvel objet imagick */
$im = new \Imagick();
/* Création d'une nouvelle image. Elle sera utilisée comme masque de remplissage */
$im->newPseudoImage(50, 100, "gradient:gray-black");
/* Création d'un nouvel objet imagickdraw */
$draw = new \ImagickDraw();
/* On commence un nouveau masque nommé "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 110);
/* Ajout du dégradé sur le masque */
$draw->composite(\Imagick::COMPOSITE_OVER, 0, 0, 50, 110, $im);
/* Fermeture du masque */
$draw->popPattern();
/* Utilisation du masque nommé "gradient" comme remplissage */
$draw->setFillPatternURL('#gradient');
/* Définition de la taille du texte à 52 */
$draw->setFontSize(92);
$draw->setFont(ROOT . DS . 'font/comic.ttf');
/* Ajout d'un texte */
$draw->annotation(20, 100, "Not Found !");
$this->image->drawImage($draw);
}
} else {
if (!file_exists($chemin)) {
//throw new \Exception("Not Found Image");
$this->image = new \Imagick();
$this->image->newImage(600, 600, new \ImagickPixel('white'));
/* Création d'un nouvel objet imagick */
$im = new \Imagick();
/* Création d'une nouvelle image. Elle sera utilisée comme masque de remplissage */
$im->newPseudoImage(50, 100, "gradient:gray-black");
/* Création d'un nouvel objet imagickdraw */
$draw = new \ImagickDraw();
/* On commence un nouveau masque nommé "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 110);
/* Ajout du dégradé sur le masque */
$draw->composite(\Imagick::COMPOSITE_OVER, 0, 0, 50, 110, $im);
/* Fermeture du masque */
$draw->popPattern();
/* Utilisation du masque nommé "gradient" comme remplissage */
$draw->setFillPatternURL('#gradient');
/* Définition de la taille du texte à 52 */
$draw->setFontSize(92);
$draw->setFont(ROOT . DS . 'font/comic.ttf');
/* Ajout d'un texte */
$draw->annotation(20, 100, "Not Found !");
$this->image->drawImage($draw);
}
}
$this->image = new \Imagick($chemin);
$imageprops = $this->image->getImageGeometry();
$this->width = $imageprops['width'];
$this->height = $imageprops['height'];
$this->image->setImageFormat("jpeg");
}
示例3: pushPattern
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();
}