步骤一:加载原始图片

// 图片路径
$imagePath = './example.jpg';
// 加载图片
$image = imagecreatefromjpeg($imagePath);
if (!$image) {
    die('无法加载图片');
}

步骤二:设置字体颜色、大小和样式

在绘制文字之前,你需要设置字体颜色、大小和样式。这可以通过imagecolorallocate函数实现,并使用GD库的内置字体或自定义字体。

// 设置字体颜色、大小和样式
$fontColor = imagecolorallocate($image, 255, 255, 255); // 白色
$fontSize = 5; // 字体大小
$fontFile = './arial.ttf'; // 字体文件路径

步骤三:处理文字换行

// 文字内容
$text = '这是一段需要换行的文字。';
// 计算每行文字的宽度
$textWidth = imagesx($image) - imagefontwidth($fontSize) * strlen($text);
// 分割文字为多行
$textLines = wordwrap($text, $textWidth, "\n", true);

步骤四:在图片上绘制文字

// 绘制文字
$y = 10; // 起始y坐标
foreach (explode("\n", $textLines) as $line) {
    imagettftext($image, $fontSize, 0, 10, $y, $fontColor, $fontFile, $line);
    $y += ($fontSize * 1.2); // 每行之间的间距
}

步骤五:输出或保存合成图片

最后,你可以使用header函数设置正确的MIME类型后直接输出,或用imagejpegimagepngimagegif等函数保存到文件。

// 设置输出内容类型
header('Content-Type: image/jpeg');
// 输出图片
imagejpeg($image);
// 释放内存
imagedestroy($image);