PHP Unconference Europe 2015

ImagickDraw::pushClipPath

(PECL imagick 2.0.0)

ImagickDraw::pushClipPathCommence 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.

add a note add a note

User Contributed Notes 1 note

up
0
bogdan at moongate dot ro
3 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.

<?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
?>
To Top