PHP - 如何使用GD在图像上添加透明颜色层?

时间:2013-12-08 08:10:30

标签: php image colors gd transparent

无论如何使用GD在图像上添加透明色层?

这是一个例子。我收到的图像看起来像在左侧(图像是一个透明的背景)。如果我将#ff0000这样的颜色传递给程序,我想在图像上添加一个50%透明的颜色层,但只有在其上有东西的区域,结果图像仍然会有一个透明的背景,看起来像在右边。

example

<?php
    $img = 'color.png';
    $hex = "#ff0000";
    list($width, $height) = getimagesize($img);
    list($r, $g, $b) = sscanf($hex, "#%02x%02x%02x");
    $img_a = imagecreatefrompng($img);
    imagealphablending($img_a, true);
    $layer = imagecolorallocatealpha($img_a, $r, $g, $b, 50);
    imagefilledrectangle($img_a, 0, 0, $width, $height, $layer);
    header('Content-Type: image/png');
    imagepng($img_a);
    imagedestroy($img_a);
?>

0 个答案:

没有答案