首页 > 解决方案 > 在PHP中合并两张图片

问题描述

我需要在 PHP 中组合两个图像。主图片为PNG,次要图片为JPG。

第一张图:

掌握

次要图片:

第二

测试: http ://happywin.konektor.grafikstudio-m.com/imageMerge/

<?php
$dest = imagecreatefrompng('muster.png');
$src = imagecreatefromjpeg("test.jpg");

imagecolortransparent($src);
imagesavealpha($dest, false);

imagealphablending($src, true);
imagesavealpha($src, true);


imagecopymerge($dest, $src, 0, 0, 0, -100, 2000, 1300, 50);



header('Content-Type: image/png');
imagepng($dest);

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

我需要连接图片并使用白色背景

标签: phpgd

解决方案


创建一个与 muster.png 大小相同的画布图像,并用白色填充它。

$muster = imagecreatefrompng('muster.png');
$canvas = imagecreatetruecolor(imagesx($muster), imagesy($muster));
$white = imagecolorallocate($canvas, 255, 255, 255);
imagefill($canvas, 0, 0, $white);

打开 test.jpg 并使用左上角的像素颜色作为透明颜色。

$test = imagecreatefromjpeg('test.jpg');
imagecolortransparent($test, imagecolorallocate($test, 255, 255, 255));

将 2 个图像复制到画布上,顺序是可选的,注意复制 muster.png (truecolor) 与imagecopy但复制 test.jpg (pallete) 与imagecopymerge.

imagecopy($canvas, $muster, 0, 0, 0, 0, imagesx($muster), imagesy($muster));
imagecopymerge($canvas, $test, 0, 100, 0, 0, imagesx($test), imagesy($test), 100);

header('Content-Type: image/png');
imagepng($canvas);

// ...destroy

推荐阅读