(PECL imagick 2, PECL imagick 3)
Imagick::negateImage β ΠΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΡΠ²Π΅ΡΠ° Π² ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
ΠΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΡΠ²Π΅ΡΠ° Π² ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Grayscale ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² ΡΠ΅ΡΠΎΠ³ΠΎ.
grayΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π² ΠΎΡΡΠ΅Π½ΠΊΠ°Ρ ΡΠ΅ΡΠΎΠ³ΠΎ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
channelΠ£ΠΊΠ°ΠΆΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ CHANNEL, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΊΠ°Π½Π°Π»Π°. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠΈΠΏΠ° CHANNEL Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ CHANNEL.
Π€ΡΠ½ΠΊΡΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true.
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ImagickException, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Imagick::negateImage()
<?php
function negateImage($imagePath, $grayOnly, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->negateImage($grayOnly, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>