La función ImagickDraw::pushPattern() es una función incorporada en PHP que se utiliza para contener la definición de un patrón con nombre. Todo entre pushPattern() y popPattern() es la definición de patrón.
Sintaxis:
bool ImagickDraw::pushPattern( string $pattern_id, float $x, float $y, float $width, float $height )
Parámetros: esta función acepta cinco parámetros, como se mencionó anteriormente y se describe a continuación:
- $pattern_id: Especifica el nombre único del patrón
- $x: Especifica la coordenada x de la esquina superior izquierda.
- $y: Especifica la coordenada y de la esquina superior izquierda.
- $ancho: Especifica el ancho del patrón.
- $height: Especifica la altura del patrón.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito.
Excepciones: esta función lanza ImagickException en caso de error.
Los siguientes programas ilustran la función ImagickDraw::pushPattern() en PHP:
Programa 1:
<?php // Create a new imagick object $imagick = new Imagick(); // Create a image on imagick object $imagick->newImage(800, 250, 'white'); // Create a new imagickDraw object $draw = new ImagickDraw(); // Push the pattern $draw->pushPattern("MyPattern", 0, 0, 50, 50); $color = ['red', 'green', 'blue']; for ($x = 0; $x < 50; $x += 10) { for ($y = 0; $y < 50; $y += 5) { $draw->setFillColor($color[$y % 3]); $draw->rectangle($x % 5, $y + 1, $x, $y + 50); } } // Pop the pattern $draw->popPattern(); // Set the fill Opacity $draw->setFillOpacity(0); // Set the fill pattern URL $draw->setFillPatternURL('#MyPattern'); // Draw a rectangle $draw->rectangle(0, 0, 900, 900); // Render the draw commands $imagick->drawImage($draw); // Show the output $imagick->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick->getImageBlob(); ?>
Producción:
Programa 2:
<?php // Create a new imagick object $imagick = new Imagick(); // Create a image on imagick object $imagick->newImage(800, 250, 'white'); // Create a new imagickDraw object $draw = new ImagickDraw(); // Push the pattern $draw->pushPattern("MyPattern", 0, 0, 50, 50); $color = ['red', 'green', 'cyan']; for ($x = 0; $x < 50; $x += 10) { for ($y = 0; $y < 50; $y += 5) { $draw->setFillColor($color[$y % 3]); $draw->circle($x % 2, $y + 100, $x, $y); } } // Pop the pattern $draw->popPattern(); // Set the fill Opacity $draw->setFillOpacity(0); // Set the fill pattern URL $draw->setFillPatternURL('#MyPattern'); // Draw a rectangle $draw->rectangle(0, 0, 900, 900); // Render the draw commands $imagick->drawImage($draw); // Show the output $imagick->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick->getImageBlob(); ?>
Producción:
Referencia: https://www.php.net/manual/en/imagickdraw.pushpattern.php