【问题标题】:PHP GD - Add a color layer over a imagePHP GD - 在图像上添加颜色层
【发布时间】:2018-06-10 20:12:03
【问题描述】:

我想使用 gd 在 php 中的图像上添加颜色层。

这是图片:

我想用这种颜色覆盖它:#ABD0D2

我快速制作了一张图片,它最终应该是什么样子。 请记住,图像仍然应该是透明的

到目前为止,我有这个代码:

$img = imagecreatefrompng('image.png');

imagesavealpha($img, true);
imagefill($img, 0, 0, imagecolorallocatealpha($img, 0, 0, 0, 127));

// make overlay with new color???

imagepng($img, 'new.png');
imagedestroy($img);

【问题讨论】:

    标签: php image colors overlay gd


    【解决方案1】:

    您可以创建一个新图像,填充您的目标颜色,然后将两者合并:

    $img = imagecreatefrompng('image.png');
    $w = imagesx($img);
    $h = imagesy($img);
    imagesavealpha($img, true);
    
    $img2 = imagecreatetruecolor($w, $h);
    imagefill($img2, 0, 0, imagecolorallocatealpha($img, 0xAB, 0xD0, 0xD2, 64));
    
    imagecopy($img, $img2, 0, 0, 0, 0, $w, $h);
    
    imagepng($img, 'new.png');
    imagedestroy($img);
    imagedestroy($img2);
    

    结果:

    我并不完全清楚您希望如何保持透明度(因为您的预期结果图像不透明),所以在上面的代码中,我将“遮罩”颜色设置为 50% 的不透明度。

    【讨论】:

    • @Tafelglotzer 对此有何回应?
    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 2014-10-17
    • 2010-12-02
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    相关资源
    最近更新 更多