【问题标题】:Problem when I merge 2 images, png show background in white当我合并 2 个图像时出现问题,png 以白色显示背景
【发布时间】:2021-03-06 10:39:42
【问题描述】:

我有这个问题,当我合并 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);

非常感谢!

image_result

【问题讨论】:

  • 欢迎来到 SO!我从未在 PHP 中使用 GD-package 进行图像处理取得任何成功。我一直使用(非常成功)Imagick 包。只是一个建议。

标签: php image join merge gd


【解决方案1】:

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

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');

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 2013-07-26
    • 2018-03-15
    • 1970-01-01
    • 2017-02-16
    • 2023-04-10
    • 2015-10-21
    • 2020-01-20
    • 2018-08-06
    相关资源
    最近更新 更多