【问题标题】:Can a color channel be removed from an image using PHP/GD Library可以使用 PHP/GD 库从图像中删除颜色通道吗
【发布时间】:2016-05-12 08:37:41
【问题描述】:

我有一个从拼接软件导出的红色 png 图像,如左上角所示。而且我需要对图像进行脱色,如图所示,以便稍后将其重新着色为任何颜色。

我已经通过 GD 对预脱色/未着色的图像进行了着色。

但我想自动对那些通过 GD 上传的“红色缝线”PNG 进行脱色,而不是通过 Photoshop 对它们进行预处理,如快照所示:

我可以用 GD 做到这一点吗?或者如果没有,我可以使用 Imagick 方法吗?

【问题讨论】:

  • @n-dru 它的工作方式不同。该方法将红色的灰度部分完全去除为全白区域。 IMG_FILTER_GRAYSCALE 建议的答案也不起作用,因为它将红色转换为深灰色。我只需要去除红色。基本上把它变成白色。保持针迹灰度图案完整。

标签: php image-processing png gd imagick


【解决方案1】:

你可以使用这个 PHP 函数来使用纯 PHP: http://php.net/manual/de/function.imagefilter.php

并使用过滤器类型 IMG_FILTER_GRAYSCALE 像这个例子:

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 'Image converted to grayscale.';

    imagepng($im, 'pic.png');
}
else
{
    echo 'Conversion to grayscale failed.';
}

imagedestroy($im);
?>

或者您可以使用它来消除饱和度: http://php.net/manual/en/imagick.modulateimage.php 但它与 Imagick 一起使用

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 2010-10-17
    • 2010-12-02
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2020-02-07
    相关资源
    最近更新 更多