【问题标题】:Php Imagick - Gradient blend images with transparencyPhp Imagick - 具有透明度的渐变混合图像
【发布时间】:2016-11-25 17:17:54
【问题描述】:

我正在尝试制作两个(或更多)图像的渐变混合效果。 但问题是我的图像具有透明度。

我必须图像:

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

直到现在,我一直在蓝色蒙版上应用渐变蒙版,例如:

蓝色图像遮罩

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

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

我找不到一种解决方案来制作适用于透明图像的良好渐变混合效果。我正在使用 imagemagick(使用 PHP),但即使在 Gimp 或 Photoshop 上我也找不到解决方案...

你知道这样做的好方法吗?

谢谢!

PS:资源: 红色图片

蓝色图片

蓝图蒙版(黑白)

蓝色图片的蒙版(透明和白色)

【问题讨论】:

  • 你能提供没有棋盘底衬的实际图像吗?
  • 当然!我编辑了问题!

标签: php imagemagick gradient imagick blending


【解决方案1】:

你知道这样做的好方法吗?

我建议将 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

最后将生成的蒙版应用为新的 Alpha 通道。

convert base_out.png  mask_out.png -alpha Off \
        -compose CopyOpacity -composite output.png

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2011-02-07
    • 2016-10-28
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多