这个PNG透明图像生成器有什么问题?背景是黑色的


What’s wrong with this PNG Transparent image generator? The background is Black

首先:我想创建一个PNG图像并在其中绘制一个形状。

第二:在另一张图片(例如 jpg 图片(上重叠第一个 PNG问题是:当我创建第一个内部带有形状的 PNG 时(背景不透明且很暗(,因此这会在第二张图像上产生黑色重叠。

我该如何解决它?

我对图像功能的工作不多,所以我遇到了麻烦。

注意:我需要创建第一个透明 PNG,然后在第二个图像上重叠它。我不想直接在第二张图像上创建形状。

和守则:

<?php
    define('EXAMPLE_TMP_SERVERPATH', '');
    define('EXAMPLE_TMP_URLRELPATH', '');

    $tempDir = EXAMPLE_TMP_SERVERPATH;
    $fileName = 'test3img.png';

    $imgW = 125;
    $imgH = 125;
    # First
    $base_image = imagecreatetruecolor($imgW, $imgH);
    $black = imagecolorallocate($base_image, 0, 0, 0);
    imagecolortransparent($base_image, $black);
    $col[0] = imagecolortransparent($base_image, $black);
    imagealphablending($base_image, true);
    imagesavealpha($base_image, true);

    imagefill($base_image, 0, 0, $col[0]);
    imagefilledrectangle($base_image, 4, 4, 50, 25, 255);
    imagepng($base_image, $tempDir.$fileName);

# First2
$target_image = imagecreatetruecolor($imgW*5, $imgH*5);
$black2 = imagecolorallocatealpha($base_image, 0, 0, 0, 127); 
imagecolortransparent($target_image, $black2);
imagecopyresized($target_image, $base_image, 0, 0, 0, 0,$imgW, $imgH, $imgW, $imgH);
imagedestroy($base_image);
imagepng($target_image, $tempDir.$fileName);
imagedestroy($target_image);
# First2
    # Second    
    $dest = imagecreatefromjpeg('../avatar.jpg');
    $src = imagecreatefrompng(EXAMPLE_TMP_URLRELPATH.$fileName);

    imagealphablending($dest, true);
    imagesavealpha($dest, true);
    imagealphablending($src, true);
    imagecopyresampled(
                        $dest,
                        $src,
                        0,0,
                        0,0,
                        200, 200,
                        125, 125
                    ); 
    imagepng($dest, EXAMPLE_TMP_URLRELPATH.'_m.jpeg');
    imagedestroy($dest);
    imagedestroy($src);
?>

还需要添加 alpha 通道:阿尔法通道