(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();
}
?>