函数名: Imagick::colorMatrixImage()
适用版本: Imagick 3.4.0
用法: Imagick::colorMatrixImage() 方法用于将图像的每个像素应用颜色矩阵转换。颜色矩阵转换是一种线性变换,通过乘以一个3x3的矩阵来改变像素的颜色值。
语法: public Imagick::colorMatrixImage ( array $matrix )
参数:
- matrix: 一个包含20个浮点数的一维数组,表示颜色矩阵的值。
返回值:成功时返回 true,失败时返回 false。
示例:
// 创建一个 Imagick 对象
$image = new Imagick('image.jpg');
// 定义一个颜色矩阵
$matrix = [
1.5, 0.5, 0.5, 0, 0,
0.5, 1.5, 0.5, 0, 0,
0.5, 0.5, 1.5, 0, 0,
0, 0, 0, 1, 0,
0, 0, 0, 0, 1
];
// 应用颜色矩阵转换
$image->colorMatrixImage($matrix);
// 显示或保存结果
$image->setImageFormat('png');
header('Content-type: image/png');
echo $image;
// 释放内存
$image->destroy();
上述示例中,我们首先创建了一个 Imagick 对象,并加载了一张名为 "image.jpg" 的图像。然后,我们定义了一个颜色矩阵,该矩阵将图像的每个像素进行线性变换。最后,我们调用 colorMatrixImage() 方法,将颜色矩阵应用到图像上。最终,我们将结果以 PNG 格式输出到浏览器,并释放了内存。
请注意,颜色矩阵的值会直接影响图像的颜色,所以在使用该方法时需要谨慎选择合适的矩阵值,以达到期望的效果。