Here's an interactive example for your enjoyment, featuring two intersecting discs. My version doesn't antialias the clipping path; I suppose YMMV.
<?php
// 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
$width=151;
$height=101;
$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 ($showAny)
$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
?>
ImagickDraw::pushClipPath
(PECL imagick 2.0.0)
ImagickDraw::pushClipPath — Commence la définition d'un chemin
Description
bool ImagickDraw::pushClipPath
( string
$clip_mask_id
)Avertissement
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
-
clip_mask_id -
L'identifiant du masque de clip
Valeurs de retour
Aucune valeur n'est retournée.
bogdan at moongate dot ro
08-Apr-2011 06:02
