SunshinePHP 2016


(PECL imagick 2.0.0)

ImagickDraw::pushClipPathCommence la définition d'un chemin


bool ImagickDraw::pushClipPath ( string $clip_mask_id )

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Commence la définition d'un chemin, qui est constitué de n'importe quel nombre de commandes de dessins, et terminé par une commande ImagickDraw::popClipPath().

Liste de paramètres


L'identifiant du masque de clip

Valeurs de retour

Aucune valeur n'est retournée.

add a note add a note

User Contributed Notes 1 note

bogdan at moongate dot ro
4 years ago
Here's an interactive example for your enjoyment, featuring two intersecting discs. My version doesn't antialias the clipping path; I suppose YMMV.


// Simple clip path example
// Bogdan Stancescu

$showClipping=1; // Try setting this to 0!
$showDrawing=1// Try setting this to 0!

// Don't edit below this line (at least until you understand the example)

$showBoth=$showClipping && $showDrawing;
$showAny=$showClipping || $showDrawing;

$image=new Imagick(); // Create image

// Image size

$image->newImage($width, $height, new ImagickPixel('lightgray')); // some visible background

$draw=new ImagickDraw(); // Create draw object

if ($showBoth)
$draw->pushClipPath('circle_left'); // Start clipping path

if ($showClipping) {
$draw->setFillColor('red'); // The color doesn't matter if we clip
$draw->circle(50,50,50,0); // A circle that occupies 100x100px on the left

if (
$showBoth) {
$draw->popClipPath(); // Finish clipping path
$draw->setClipPath('circle_left'); // Use the clipping path above

if (
$showDrawing) {
$draw->setFillColor('navy'); // This is the actual drawing color
$draw->circle(100,50,100,0); // A circle that occupies 100x100px on the right

if (
$image->drawImage($draw); // Render $draw unto $image

$image->setImageFormat('png'); // Tell ImageMagick how to render this
header("Content-Type: image/png"); // Tell the browser how to render this

echo $image; // Render the image into the browser
To Top