引言

图片合并基础

1. GD库安装与配置

首先,确保你的PHP环境中已安装GD库。你可以通过以下命令检查GD库是否已安装:

php -m | grep gd

如果输出中没有gd,则需要安装GD库。

2. 图片创建与加载

// 创建一个新的图片资源
$dstImage = imagecreatetruecolor(500, 500);
// 设置背景颜色
$color = imagecolorallocate($dstImage, 255, 255, 255);
imagefill($dstImage, 0, 0, $color);

// 加载第一张图片
$srcImage1 = imagecreatefrompng('image1.png');
// 加载第二张图片
$srcImage2 = imagecreatefrompng('image2.png');

图片合并技巧

1. 图片裁剪与定位

// 裁剪第一张图片
$cutImage1 = imagecrop($srcImage1, ['x' => 0, 'y' => 0, 'width' => 200, 'height' => 200]);
// 裁剪第二张图片
$cutImage2 = imagecrop($srcImage2, ['x' => 0, 'y' => 0, 'width' => 200, 'height' => 200]);

// 定位图片
$dstX = 50;
$dstY = 50;

2. 图片合并

// 合并第一张图片
imagecopy($dstImage, $cutImage1, $dstX, $dstY, 0, 0, imagesx($cutImage1), imagesy($cutImage1));
// 合并第二张图片
imagecopy($dstImage, $cutImage2, $dstX + 250, $dstY, 0, 0, imagesx($cutImage2), imagesy($cutImage2));

3. 图片保存与输出

// 保存合并后的图片
imagepng($dstImage, 'merged_image.png');
// 输出合并后的图片
header('Content-Type: image/png');
imagepng($dstImage);

实战案例分析

  1. 生成二维码图片。
  2. 加载背景图片。
  3. 合并二维码图片到背景图片。
  4. 输出合并后的图片。
// 生成二维码图片
$code = 'http://www.example.com';
$size = 300;
$qrImage = QRcode::png($code, false, QR_ECLEVEL_L, $size);

// 加载背景图片
$bgImage = imagecreatefrompng('background.png');

// 合并二维码图片到背景图片
imagecopy($bgImage, $qrImage, 50, 50, 0, 0, imagesx($qrImage), imagesy($qrImage));

// 输出合并后的图片
header('Content-Type: image/png');
imagepng($bgImage);

总结