Imagick::evaluateImage

(PECL imagick 2, PECL imagick 3)

Imagick::evaluateImage将表达式应用于图像

描述

public Imagick::evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool

将算术、关系或逻辑表达式应用于图像。使用这些运算符可以使图像变亮或变暗,增加或减少图像对比度,或生成图像的“负片”。

参数

op

评估运算符

constant

运算符的值

channel

提供任何对您的通道模式有效的通道常量。要应用于多个通道,请使用按位运算符组合通道类型常量。请参阅此 通道常量列表

返回值

如果成功,则返回 true

错误/异常

发生错误时抛出 ImagickException。

示例

示例 #1 使用 Imagick::evaluateImage()

使用 evaluateImage 降低图像的不透明度。

<?php
// 使用图像创建新对象
$im = new Imagick('example-alpha.png');

// 将 alpha 降低 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// 输出图像
header("Content-Type: image/png");
echo
$im;
?>

添加注释

用户贡献的注释 1 条注释

nils dot rocine at gmail dot com
12 年前
对我来说,将 JPG 源文件转换为半透明 PNG 的方法有效。

<?php
$srcImagick
= new Imagick($srcPath);

$pathTo50Perc = 'transparent1.png';

$srcImagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_OPAQUE);

$srcImagick->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

$srcImagick->writeImage($pathTo50Perc);
?>
To Top