PHP MagickWand True Grayscale

Я ищу способ воспроизвести функцию Photoshop Grayscale / Desaturate в PHP, у меня на сервере установлен MagickWand.

Я пробовал множество различных методов (включая итерацию пикселей), но контрастность всегда меняется (ярче), когда я открываю измененное изображение в фотошопе.

Я думаю, это может быть связано с тем, что встроенный цветовой профиль не сохраняется??

$resource = NewMagickWand();
MagickReadImage( $resource, $file);
MagickQuantizeImage( $resource, 16772216, MW_GRAYColorspace, 8, true, true );

header( 'Content-Type: image/jpeg' );
MagickEchoImageBlob( $resource );

Кто-нибудь знает о настоящих оттенках серого, которые можно сделать с помощью PHP ?? Решение не должно использовать Imagemagick

ценится


person Michael L Watson    schedule 05.04.2011    source источник


Ответы (1)


преобразовать изображение в оттенки серого с помощью imagemagick

$resource = NewMagickWand();
MagickReadImage( $resource, $file);
$colors = MagickGetImageColors( $resource );
MagickQuantizeImage( $resource, $colors, MW_GRAYColorspace, 8, true, true );
MagickGetImageProfile( $resource , 'ICC');
//MagickModulateImage( $resource, 90, 0, 0); 
//MagickContrastImage( $resource, 2 );
MagickProfileImage( $resource, '*' , 'NULL');
MagickProfileImage( $resource, 'ICC' , file_get_contents('ICC/sGray.icc'));

header( 'Content-Type: image/jpeg' );
MagickEchoImageBlob( $resource );

Вот ссылка на серый профиль http://www.mediafire.com/?jxlwfyjzjzj

person Michael L Watson    schedule 06.04.2011