📜  PHP | imagickdraw setVectorGraphics()函数

📅  最后修改于: 2022-05-13 01:56:30.659000             🧑  作者: Mango

PHP | imagickdraw setVectorGraphics()函数

ImagickDraw::setVectorGraphics()函数是PHP中的一个内置函数,用于设置与指定 ImagickDraw 对象关联的矢量图形。矢量图形包含赋予 ImagickDraw 对象的所有绘制命令。此函数可用于将绘图命令从一个对象复制到另一个对象或用于编辑绘图命令。

句法:

bool ImagickDraw::setVectorGraphics( string $xml )

参数:此函数接受一个保存矢量图形的参数$xml

返回值:此函数在成功时返回 TRUE。

异常:此函数在出错时抛出 ImagickException。

下面的程序说明了PHP中的ImagickDraw::setVectorGraphics()函数

方案一:

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();
?>

输出:

方案二:

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();
?>

输出:

参考: https://www. PHP.net/manual/en/imagickdraw.setvectorgraphics。 PHP