0

我正在寻找一种在 PHP 中复制 Photoshop Grayscale/Desaturate 功能的方法,我在服务器上安装了 MagickWand。

我尝试了许多不同的方法(包括迭代像素),但是当我在 Photoshop 中打开修改后的图像时,对比度总是会改变(更亮)。

我认为这可能与未保存嵌入式颜色配置文件有关?

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

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

任何人都知道可以通过 PHP 完成的真正灰度?解决方案不必使用 Imagemagick

赞赏

4

1 回答 1

0

使用 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

于 2011-04-06T07:20:43.957 回答