La función ImagickDraw::setVectorGraphics() es una función incorporada en PHP que se usa para configurar los gráficos vectoriales asociados con el objeto ImagickDraw especificado. Los gráficos vectoriales contienen todos los comandos de dibujo dados a un objeto ImagickDraw. Esta función se puede utilizar para copiar comandos de dibujo de un objeto a otro o para editar los comandos de dibujo.
Sintaxis:
bool ImagickDraw::setVectorGraphics( string $xml )
Parámetros: esta función acepta un solo parámetro $xml que contiene los gráficos vectoriales.
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::setVectorGraphics() en PHP:
Programa 1:
<?php // Create a new imagick object $imagick = new Imagick(); // Create a image on imagick object $imagick->newImage(800, 250, 'black'); // Create a new ImagickDraw object $draw = new ImagickDraw(); // Set the fill color $draw->setFillColor('white'); // set the font size $draw->setFontSize(80); // Annotate a text $draw->annotation(60, 120, 'GeeksforGeeks'); // Get the vector graphics $vectorGraphics = $draw->getVectorGraphics(); // Create a new ImagickDraw object $draw2 = new ImagickDraw(); // Paste vector graphics to new object $draw2->setVectorGraphics($vectorGraphics); // Render the draw commands from new object $imagick->drawImage($draw2); // 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, 'black'); // Create a new ImagickDraw object $draw = new ImagickDraw(); // Set the fill color $draw->setFillColor('blue'); // Draw a circle $draw->circle(200, 150, 190, 100); // Get the vector graphics $vectorGraphics = $draw->getVectorGraphics(); // Change the color from blue to red $vectorGraphics = str_replace("'#00000000FFFF'", "'#FFFF00000000'", $vectorGraphics); // Setting the new vector graphics $draw->setVectorGraphics($vectorGraphics); // 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.setvectorgraphics.php