ImagickDraw::pushClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushClipPath开始剪切路径定义

描述

public ImagickDraw::pushClipPath(string $clip_mask_id): bool
警告

此函数目前没有文档;只有其参数列表可用。

开始一个剪切路径定义,它包含任意数量的绘图命令,并由 ImagickDraw::popClipPath() 命令终止。

参数

clip_mask_id

剪切蒙版 ID

返回值

不返回值。

添加笔记

用户贡献的笔记 1 条笔记

0
bogdan at moongate dot ro
13 年前
这是一个供您欣赏的交互式示例,它包含两个相交的圆盘。我的版本没有对剪切路径进行抗锯齿化;我想 YMMV。

<?php

// 简单剪切路径示例
// Bogdan Stancescu

$showClipping=1; // 尝试将其设置为 0!
$showDrawing=1; // 尝试将其设置为 0!

// 不要编辑此行以下的内容(至少在您理解示例之前)

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

$image=new Imagick(); // 创建图像

// 图像大小
$width=151;
$height=101;

$image->newImage($width, $height, new ImagickPixel('lightgray')); // 一些可见的背景

$draw=new ImagickDraw(); // 创建绘图对象

if ($showBoth)
$draw->pushClipPath('circle_left'); // 开始剪切路径

if ($showClipping) {
$draw->setFillColor('red'); // 如果我们剪切,颜色无关紧要
$draw->circle(50,50,50,0); // 一个在左边占据 100x100px 的圆
}

if (
$showBoth) {
$draw->popClipPath(); // 完成剪切路径
$draw->setClipPath('circle_left'); // 使用上面的剪切路径
}

if (
$showDrawing) {
$draw->setFillColor('navy'); // 这是实际的绘图颜色
$draw->circle(100,50,100,0); // 一个在右边占据 100x100px 的圆
}

if (
$showAny)
$image->drawImage($draw); // 将 $draw 渲染到 $image

$image->setImageFormat('png'); // 告诉 ImageMagick 如何渲染此图像
header("Content-Type: image/png"); // 告诉浏览器如何渲染此图像

echo $image; // 将图像渲染到浏览器
?>
To Top