首页 > 解决方案 > 当我合并 2 个图像时出现问题,png 以白色显示背景

问题描述

我有这个问题,当我合并 2 个图像时,图像 .png 显示为背景,我尝试使用 imagecolortransparent() 和其他函数删除但无法正常工作。该图像是在没有背景的情况下创建的,但我认为当图像由 imagecreatefrompng() 创建时,会自动放置背景。

这是代码:

$dest = imagecreatefromjpeg("1.jpg");
    $src = imagecreatefrompng("2.png");
    
    imagecopymerge($dest, $src, 10, 10, 0, 0, 1000, 900, 50); 
    $white = imagecolorallocate($src, 255, 255, 255);
    imagecolortransparent($src, $white);
    imagejpeg($dest, "1.png");

    imagedestroy($dest);
    imagedestroy($src);

非常感谢你!

图像结果

标签: phpimagejoinmergegd

解决方案


问题已解决。解决方案是使用以下代码:

imagecopy($imagen1, $imagen2, 180, 135, 0,0, 201, 201);

imagecopymerge($dest, $src, 10, 10, 0, 0, 1000, 900, 50); 

听到所有代码:

$rutaImagen1 = 'directory/azul-gris.jpg';
    $rutaImagen2 = 'directory/lobo_geometrico.png';
    // Crear instancias de imágenes
    $imagen1 = imagecreatefromjpeg($rutaImagen1);
    $imagen2 = imagecreatefrompng($rutaImagen2);

    //Procesar imagenes y guardarlas
    imagealphablending($imagen2, true);
    imagesavealpha($imagen2, true);
    imagecopy($imagen1, $imagen2, 180, 135, 0,0, 201, 201);
    imagepng($imagen1, 'prueba.png');

推荐阅读