【发布时间】:2012-05-31 16:17:53
【问题描述】:
所以我有一个使用 ImageMagick 和 php 的情况,我需要分别处理每个 RGB 通道,然后将它们重新合并到最终图像中。所以在我下面的代码中,$red、$green 和 $blue 是通道(作为灰度图像)。以下代码是我尝试过的(以及一些变体),但每次我最终得到的图像只有青色、洋红色或黄色显示。在这种情况下,生成的图像是青色的。
$im->removeImage();
$im->addImage($red);
$im->addImage($green);
$im->addImage($blue);
$img = $im->combineImages(self::CHANNEL_ALL);
$im->removeImage();
$im->removeImage();
$im->removeImage();
$im->addImage($img);
我认为我的部分问题是 PHP 文档没有详细说明如何使用 combineImages,而且目前我找不到任何示例。因此,我很可能错误地使用了该特定方法,并且我怀疑这与我如何在单个 Imagick 对象中组合图像开始有关。
编辑
这个问题最终归结为:如何仅使用 php 重新创建以下脚本?
convert tmp_r.png tmp_g.png tmp_b.png -combine tmp_rgb.png
【问题讨论】:
-
我整晚都在尝试这个工作,但我总是得到一个红色或灰色的图像。几个小时后,我开始认为 addImage 是错误的,因为这看起来像是 gif 动画。我在 Imagemagick 论坛上发现了一篇建议改为合成的帖子。我无法理解 Imagick 的工作原理,因为文档完全无用且具有误导性。
-
100% 同意文档......
-
你在哪里找到那个帖子?
-
没有太多信息,它在论坛的 rmagick 部分:imagemagick.org/discourse-server/… 我整个周末都在尝试创建一个所有 Imagick 操作员的示例以放在我的网站上,但我现在卡在没有很好文档的那些!
-
您是否有任何特殊原因强迫自己使用 PHP Imagick 扩展而不是仅仅使用 shell 命令?
标签: php image-processing imagemagick