PHP : 将上传的动态图片转换为特定颜色(动态颜色)

Key*_*hah 2 php gd image image-processing

我有一个简单的HTML表单,用户可以在其中上传他们的图像,我需要在帮助下将此上传的图像转换为特定颜色PHP

例如,用户上传一些图像我需要将整个图像转换为特定颜色(这种颜色是动态的)

是否有任何PHPGD图书馆可以帮助我实现这一目标?

编辑

例如,用户正在上传这种图片,

在此处输入图片说明

然后我需要转换成以下类型的图像,

在此处输入图片说明

Mar*_*ell 7

我仍然不确定您到底要做什么,但认为以下其中一项可能很接近。也许您可以在终端中尝试它们,直到我们最终确定正确的操作,然后我们才有希望将它们翻译成 PHP。这是ImageMagick v7 语法:

magick image.png -channel RGB -colorspace gray +level-colors red,  result.png
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

或这个:

magick image.png -fill red +opaque white result2.png
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

您可以像这样为洋红色指定十六进制颜色:

magick image.png -channel RGB -colorspace gray -auto-level +level-colors '#ff00ff',  result.png
Run Code Online (Sandbox Code Playgroud)

如果使用 v6 ImageMagick,请替换magickconvert.


我的 PHP 很生疏,但像这样:

#!/usr/local/bin/php -f
<?php

// Emulating something akin to this ImageMagick command:
// magick image.png -fill red +opaque white result.png
// Open input image and get dimensions
$im = new \Imagick('image.png');

// Temporarily deactivate alpha channel
$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_DEACTIVATE);

// Apply colour to non-white areas
$im->opaquePaintImage('white','red', 0, true);

// Reactivate alpha channel
$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_ACTIVATE);

// Save
$im->writeImage('result.png');
?>
Run Code Online (Sandbox Code Playgroud)