加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP Imagick – 将图像转换为灰度(非常糟糕的结果)

发布时间:2020-12-13 22:46:20 所属栏目:PHP教程 来源:网络整理
导读:我正在用 PHP进行一些图像编辑,因为GD提供的功能较少,我切换到了Imagick. 其中一个过程是灰度图像.一切顺利(在Windows 7本地,Imagick 2.2.1-dev 6.5.8-7 Q16)直到我将脚本上传到我的网络托管服务器(Linux,Imagick 3.0.1,6.2.8,2010-10-20,Q16). 我试图改变质
我正在用 PHP进行一些图像编辑,因为GD提供的功能较少,我切换到了Imagick.

其中一个过程是灰度图像.一切顺利(在Windows 7本地,Imagick 2.2.1-dev 6.5.8-7 Q16)直到我将脚本上传到我的网络托管服务器(Linux,Imagick 3.0.1,6.2.8,2010-10-20,Q16).

我试图改变质量,但它并没有改善任何东西.

$img->setImageCompression(imagick::COMPRESSION_JPEG); 
$img->setImageCompressionQuality(100);

以下是GD,Imagick和Photoshop的结果

我相信版本3.0.1有问题.有人可以确认一下吗?

Q1:有没有其他方法可以使用Imagick将图像转换为灰度?

Q2:是否可以将GD资源转换为Imagick?所以我可以使用imagefilter($img,IMG_FILTER_GRAYSCALE);获得正确的结果然后用Imagick输出.

ps:对于Q2,你可能会建议我只使用GD来处理图像.但问题是imagejpeg()无法保存保留分辨率的图像.这就是我切换到Imagick的原因.

解决方法

这是我在php / imagick中制作B& W照片的首选方式:$im = $im-> fxImage(‘intensity’);

这适用于图像的功能,其中强度等于0.299 *红色0.587 *绿色0.114 *蓝色.

这个公式是基于我们的眼睛对不同颜色的敏感程度,因此它与“平面”灰度图像之间的差异确实是白天和黑夜.

更多细节在这里:

> http://php.net/manual/en/imagick.fximage.php
> http://www.imagemagick.org/script/fx.php

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读