Open In App

PHP | ImagickDraw popDefs() Function

The ImagickDraw::popDefs() function is an inbuilt function in PHP which is used to terminate a definition list. These are usually used to define draw commands which should be safely processed earlier for the sake of efficiency. This command has no impact on the looks of the draw commands.

Syntax:



bool ImagickDraw::popDefs( void )

Parameters: This function doesn’t accepts any parameter.

Return Value: This function returns TRUE on success.



Below programs illustrate the ImagickDraw::popDefs() function in PHP:

Program 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();
  
// Set some properties of objects
$draw->setStrokeColor('red');
$draw->setFillColor('purple');
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
  
// Create a definition
$draw->pushDefs();
$draw->setStrokeColor('green');
$draw->rectangle(150, 50, 300, 200);
$draw->popDefs();
  
// Draw a rectangle
$draw->rectangle(400, 50, 550, 200);
  
// Render the draw commands
$imagick->drawImage($draw);
  
// Show the output
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>

Output:

Program 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();
  
// Set some properties of objects
$draw->setStrokeColor('red');
$draw->setFillColor('purple');
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
  
// Create a definition
$draw->pushDefs();
$draw->setStrokeColor('green');
$draw->circle(150, 50, 200, 200);
$draw->popDefs();
  
// Draw a circle
$draw->circle(400, 50, 450, 200);
  
// Render the draw commands
$imagick->drawImage($draw);
  
// Show the output
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>

Output:

Reference: https://www.php.net/manual/en/imagickdraw.popdefs.php


Article Tags :