引言

前提条件

在开始之前,请确保你的PHP环境中已经安装并启用了GD库。你可以通过在PHP脚本中添加以下代码来检查GD库是否可用:

<?php
if (extension_loaded('gd')) {
    echo "GD库已安装";
} else {
    echo "GD库未安装";
}
?>

图片合并步骤

  1. 加载图片资源:使用imagecreatefromjpeg()imagecreatefrompng()imagecreatefromgif()等函数根据图片格式加载需要合并的图片。
  2. 创建目标画布:使用imagecreatetruecolor()函数创建一个足够大的画布,以便能够容纳所有要合并的图片。
  3. 计算合并位置:根据每张图片的大小和合并方式(水平合并、垂直合并或更复杂的方式),计算每张图片在目标画布上的起始位置。
  4. 绘制图片到画布:使用imagecopy()imagecopymerge()函数将每张图片绘制到目标画布上的指定位置。
  5. 输出或保存合并后的图片:使用imagepng()imagejpeg()等函数将合并后的图片输出到浏览器或保存为文件。
  6. 释放内存:使用imagedestroy()函数销毁所有图片资源,释放内存。

示例代码

<?php
// 加载图片资源
$image1 = imagecreatefromjpeg('path/to/image1.jpg');
$image2 = imagecreatefromjpeg('path/to/image2.jpg');

// 获取图片宽度和高度
$width1 = imagesx($image1);
$height1 = imagesy($image1);
$width2 = imagesx($image2);
$height2 = imagesy($image2);

// 创建目标画布
$width = $width1 + $width2;
$height = max($height1, $height2);
$canvas = imagecreatetruecolor($width, $height);

// 绘制第一张图片到画布
imagecopy($canvas, $image1, 0, 0, 0, 0, $width1, $height1);

// 绘制第二张图片到画布
imagecopy($canvas, $image2, $width1, 0, 0, 0, $width2, $height2);

// 输出或保存合并后的图片
imagejpeg($canvas, 'path/to/output/merged_image.jpg');

// 释放内存
imagedestroy($image1);
imagedestroy($image2);
imagedestroy($canvas);
?>

总结