(PECL imagick 3 >= 3.3.0)
Imagick::colorMatrixImage — 将颜色转换应用于图像
将颜色转换应用于图像。该方法允许饱和度变化、色调旋转、亮度到 Alpha 以及其他各种效果。虽然可以使用可变大小的变换矩阵,但通常使用 5x5 矩阵用于 RGBA 图像,而 6x6 用于 CMYKA(或带有偏移量的 RGBA)。该矩阵类似于 Adobe Flash 使用的矩阵,除了偏移量位于第 6 列而不是第 5 列(为了支持 CMYKA 图像)并且偏移量已归一化(将 Flash 偏移量除以 255)。
color_matrix
如果成功,则返回 true
。
示例 #1 Imagick::colorMatrixImage()
<?php
function colorMatrixImage($imagePath, $colorMatrix) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOpacity(1);
//颜色矩阵应该像这样:
// $colorMatrix = [
// 1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
// 0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
// 0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
// 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,
// 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,
// 0.0, 0.0, 0.0, 0.0, 0.0, 1.0
// ];
$background = new \Imagick();
$background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(), "pattern:checkerboard");
$background->setImageFormat('png');
$imagick->setImageFormat('png');
$imagick->colorMatrixImage($colorMatrix);
$background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);
header("Content-Type: image/png");
echo $background->getImageBlob();
}
?>