(PECL imagick 3 >= 3.3.0)
Imagick::colorMatrixImage — Применяет преобразование цвета к изображению
Метод применяет преобразование цвета к изображению. Метод изменяет насыщенность, вращение оттенка, яркость альфа-канала и другие эффекты. Хотя разработчики применяют матрицы преобразования переменного размера, обычно для изображения цветовой модели RGBA используется матрица 5x5, а для модели CMYKA матрица 6x6 или 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();
}
?>