0
votes

I'm using Imagick to create image but it has an error: PHP Fatal error: Uncaught exception 'ImagickDrawException' with message 'Unable to set fill pattern URL'

This is my code:

$im = new Imagick();

$im->newPseudoImage(50, 50, "gradient:red-black");

$im->setImageFormat("png");

$draw = new ImagickDraw();

$draw->pushPattern('gradient', 0, 0, 50, 50);

$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

$draw->popPattern();

$draw->setFillPatternURL('#gradient');

$draw->setFontSize(52);

$draw->annotation(20, 50, "Hello World!");

$canvas = new Imagick();

$canvas->newImage(350, 70, "white");

$canvas->drawImage($draw);

$canvas->borderImage('black', 1, 1);

$canvas->setImageFormat('png');

header("Content-Type: image/png");

echo $canvas;

1
you need more exception message, where occurred, what method occuurred. - TaeL

1 Answers

0
votes

try changing

$draw->popPattern();
$draw->setFillPatternURL('#gradient');

to

$draw->setFillPatternURL('#gradient');
$draw->popPattern();

use your pattern, before it terminated.