La función ImagickDraw::compose() es una función incorporada en PHP que se usa para componer una imagen en la imagen actual, usando el operador de composición especificado, la posición especificada y el tamaño especificado.
Sintaxis:
bool ImagickDraw::compose( int $compose, float $x, float $y, float $width, float $height, Imagick $compositeWand )
Parámetros: esta función acepta seis parámetros, como se mencionó anteriormente y se describe a continuación:
- $compose: Especifica el operador de composición que corresponde a las constantes COMPOSITE .
- $x: especifica la coordenada y de la esquina superior izquierda.
- $y: Especifica la coordenada x de la esquina superior izquierda.
- $ancho: Especifica el ancho de la imagen de la composición.
- $height: Especifica la altura de la imagen de la composición.
- $compositeWand: especifica el objeto Imagick de donde se toma la imagen de composición.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito.
Los siguientes programas ilustran la función ImagickDraw::compose() en PHP:
Programa 1:
<?php // Create a new imagick object $imagick = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); // Create a new ImagickDraw object $draw = new ImagickDraw(); // Composite the Image $draw->composite(imagick::COMPOSITE_COLORIZE, 100, 100, 200, 200, $imagick); // Create a new Imagick object $imagick2 = new Imagick(); // Create a image on imagick object $imagick2->newImage(800, 250, 'white'); // Render the draw commands $imagick2->drawImage($draw); // Add border $imagick->borderImage('green', 1, 1); // Show the output $imagick2->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick2->getImageBlob(); ?>
Producción:
Programa 2:
<?php // Create a new imagick object $imagick = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); // Create a new ImagickDraw object $draw = new ImagickDraw(); // Composite the Image $draw->composite(4, 200, 20, 400, 200, $imagick); // Create a new Imagick object $imagick2 = new Imagick(); // Create a image on imagick object $imagick2->newImage(800, 250, 'orange'); // Render the draw commands $imagick2->drawImage($draw); // Show the output $imagick2->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick2->getImageBlob(); ?>
Producción:
Referencia: https://www.php.net/manual/en/imagickdraw.composite.php