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');