【发布时间】:2020-10-27 20:20:15
【问题描述】:
我正在转换具有特定颜色的图像,并且可以使用 magick 命令正常工作,下面是我的命令,
magick image.png -channel RGB -colorspace gray -auto-level +level-colors '#f48023', result.png
它工作得很好,现在我将此命令转换为PHP 代码,但不确定-auto-level 和+level-colors 参数。这是我的代码,
$image = new Imagick('image.png');
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_DEACTIVATE);
$image->setImageColorspace(Imagick::COLORSPACE_RGB);
$image->setImageType(Imagick::IMGTYPE_GRAYSCALE);
$image->opaquePaintImage('','#f48023', 0, true);
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_ACTIVATE);
header("Content-Type: image/png");
echo $image->getImageBlob();
而且输出看起来一点都不好,
这是我的原图
**编辑(更新代码)**
$im = new Imagick();
$image = new Imagick('logo3.jpg');
list ($width, $height) = array_values ($image->getImageGeometry ());
$im->newImage(1, $height,new ImagickPixel('#f48023'));
$im->newImage(1, $height,new ImagickPixel('#FFF'));
$im->resetIterator();
$combine =$im->appendImages(true);
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_DEACTIVATE);
$image->setImageColorspace(Imagick::COLORSPACE_GRAY);
$image->contrastStretchImage(1,1,Imagick::CHANNEL_GRAY);
$image->clutImage($combine);
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_ACTIVATE);
header("Content-Type: image/png");
echo $image;
这段代码的输出如下
【问题讨论】:
标签: php imagemagick imagemagick-convert