Imagemagick(转换)控制台vs PHP Imagick-不同的结果

Imagemagick(转换)控制台vs PHP Imagick-不同的结果

Imagemagick(转换)控制台vs PHP Imagick-不同的结果

当我做convert 1.png 1.jpg时-我从png中移开了透明的,看到了jpg中的真实背景, 但是当我在php Imagick中做同样的事情时:

    $piece = new Imagick("1.png");
    $piece->mergeImageLayers(Imagick::LAYERMETHOD_flaTTEN);
    $piece->setImageFormat('jpg'); // How to refresh content of $piece w/o save to disk?
    $piece->writeImage('image.jpg'); // it works as I need - when reopen saved image

我只有白色背景,与第一张图片一样透明(但首先是透明的)。

如何使用Imagick获得相同的结果?

muling07 回答:Imagemagick(转换)控制台vs PHP Imagick-不同的结果

您正在执行两种不同类型的处理。

JPG不支持透明度。因此,您的convert命令只是读取PNG输入并保存为JPG输出。只需删除具有透明度的alpha通道,即可显示alpha通道的透明部分下方的任何图像或颜色数据。

在Imagick代码中,您将Alpha通道与默认的白色背景展平。将白色放置在Alpha通道透明的位置,然后保存为JPG。

如果要在转换命令中使用相同的白色,请执行convert image.png -flatten image.jpg。如果您希望Imagick进行与转换相同的操作,请删除拼合。读取input.png图片,然后将其保存为JPG。

本文链接:https://www.f2er.com/2877224.html

大家都在问