Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Imagick-具有透明度的渐变混合图像_Php_Imagemagick_Gradient_Imagick_Blending - Fatal编程技术网

Php Imagick-具有透明度的渐变混合图像

Php Imagick-具有透明度的渐变混合图像,php,imagemagick,gradient,imagick,blending,Php,Imagemagick,Gradient,Imagick,Blending,我试图使两个图像(或更多)的梯度混合效果。 但问题是我的图像有透明度 我必须: 我想混合这两张图片,使红色的在左边,蓝色的在右边,具有渐变混合效果 到目前为止,我一直在蓝色的上面应用渐变遮罩,例如: 蓝色图像遮罩 。。。把它放在红色的上面。这非常适用于照片,但当图像具有透明度时,我得到: 所以在这里我们可以看到蓝色图像的渐变混合,但我们可以通过透明的蓝色边框看到红色图像( 我找不到一个能在透明图像上产生良好渐变混合效果的解决方案。我正在使用imagemagick(与PHP一起),但我甚至在

我试图使两个图像(或更多)的梯度混合效果。 但问题是我的图像有透明度

我必须:

我想混合这两张图片,使红色的在左边,蓝色的在右边,具有渐变混合效果

到目前为止,我一直在蓝色的上面应用渐变遮罩,例如:

蓝色图像遮罩

。。。把它放在红色的上面。这非常适用于照片,但当图像具有透明度时,我得到:

所以在这里我们可以看到蓝色图像的渐变混合,但我们可以通过透明的蓝色边框看到红色图像(

我找不到一个能在透明图像上产生良好渐变混合效果的解决方案。我正在使用imagemagick(与PHP一起),但我甚至在Gimp或Photoshop上也找不到解决方案

你知道做那件事的好方法吗

谢谢

附注:资源: 红色图片

蓝色图片

蓝色图片的遮罩(黑白)

蓝色图片的遮罩(透明和白色)

你知道做那件事的好方法吗

我建议将alpha通道与基础图像隔离,然后根据遮罩合成两个图像

# Disable alpha channel, and composite without alpha
convert red.png -alpha off red_base.png
convert blue.png -alpha off blue_base.png
convert blue_base.png black_mask.png -alpha Off \
        -compose CopyOpacity -composite \
        red_base.png -compose DstOver -composite base_out.png

对提取的alpha通道重复此操作

convert red.png -alpha extract red_mask.png
convert blue.png -alpha extract blue_mask.png
convert blue_mask.png black_mask.png -alpha Off \
        -compose CopyOpacity -composite \
        red_mask.png -compose DstOver -composite mask_out.png
convert base_out.png  mask_out.png -alpha Off \
        -compose CopyOpacity -composite output.png

最后将生成的遮罩应用为新的alpha通道

convert red.png -alpha extract red_mask.png
convert blue.png -alpha extract blue_mask.png
convert blue_mask.png black_mask.png -alpha Off \
        -compose CopyOpacity -composite \
        red_mask.png -compose DstOver -composite mask_out.png
convert base_out.png  mask_out.png -alpha Off \
        -compose CopyOpacity -composite output.png

请提供没有棋盘底图的实际图像好吗?当然可以!我编辑了这个问题!