1. 创建图像资源

// 创建一个空白画布
$canvas = imagecreatetruecolor(200, 100);

// 从JPEG文件创建画布
$canvas = imagecreatefromjpeg('path/to/image.jpg');

// 从GIF文件创建画布
$canvas = imagecreatefromgif('path/to/image.gif');

// 从PNG文件创建画布
$canvas = imagecreatefrompng('path/to/image.png');

2. 分配颜色

在画布上绘画之前,你需要分配颜色。PHP使用RGB颜色模式:

// 分配颜色
$red = imagecolorallocate($canvas, 255, 0, 0); // 红色
$green = imagecolorallocate($canvas, 0, 255, 0); // 绿色
$blue = imagecolorallocate($canvas, 0, 0, 255); // 蓝色

3. 填充画布

使用分配的颜色填充画布:

// 使用红色填充整个画布
imagefill($canvas, 0, 0, $red);

4. 绘制图形

PHP提供了多种绘制图形的函数,如绘制矩形、圆形和线条:

// 绘制矩形
imagerectangle($canvas, 10, 10, 190, 90, $green);

// 绘制圆形
imagearc($canvas, 50, 50, 100, 100, 0, 180, $blue);

// 绘制线条
imageline($canvas, 10, 10, 190, 90, $red);

5. 保存图像

处理完图像后,你可以将其保存到服务器上:

// 保存为JPEG
imagejpeg($canvas, 'path/to/new_image.jpg');

// 保存为GIF
imagegif($canvas, 'path/to/new_image.gif');

// 保存为PNG
imagepng($canvas, 'path/to/new_image.png');

6. 输出图像到浏览器

如果你想要将图像直接输出到浏览器,可以使用以下函数:

// 输出JPEG
header('Content-Type: image/jpeg');
imagejpeg($canvas);

// 输出GIF
header('Content-Type: image/gif');
imagegif($canvas);

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

7. 使用CURL下载远程图片

// 初始化CURL会话
$ch = curl_init('https://example.com/image.jpg');

// 设置CURL选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

// 执行CURL会话
$imageData = curl_exec($ch);

// 关闭CURL会话
curl_close($ch);

// 创建图像资源
$canvas = imagecreatefromstring($imageData);

// 保存图像
imagejpeg($canvas, 'path/to/new_image.jpg');

8. 创建缩略图

PHP也提供了创建缩略图的函数,如imagecreatetruecolor()imagecopyresampled()

// 创建缩略图
$thumbnail = imagecreatetruecolor(100, 100);
imagecopyresampled($thumbnail, $canvas, 0, 0, 0, 0, 100, 100, imagesx($canvas), imagesy($canvas));

// 保存缩略图
imagejpeg($thumbnail, 'path/to/thumbnail.jpg');

总结