1 图像处理应用场景
1.缩略图
2.验证码
3.水印
4.图片裁剪
2 PHP绘图的基本步骤
(1)开启GD扩展库
(2)将图像加载到内存中进行处理
- 创建画布资源
- 准备颜色
- 在画布上画图像或文字
- 输出最终图像或保存图像
- 释放画布资源
3 绘制各种线条
3.1 绘制线条
<?php
// 1.新建一个真彩色图像,成功后返回图象资源,失败后返回 FALSE 。
$img = imagecreatetruecolor(300, 300);
// 2.为一幅图像分配颜色,返回一个标识符,代表了RGB组成的颜色
$green = imagecolorallocate($img, 0, 148, 85);
$red = imagecolorallocate($img, 255, 0, 0);
// 3.区域填充
imagefill($img, 0, 0, $green);
// 4.绘制一个线条
$line = imageline($img, 0, 0, 300, 300, $red);
header('Content-Type:image/png');
imagepng($img);
imagedestroy($img);
3.2 绘制矩形
<?php // 1.新建一个真彩色图像,成功后返回图象资源,失败后返回 FALSE 。 $img = imagecreatetruecolor(300, 300); // 2.为一幅图像分配颜色,返回一个标识符,代表了RGB组成的颜色 $green = imagecolorallocate($img, 0, 148, 85); $red = imagecolorallocate($img, 255, 0, 0); // 3.区域填充 imagefill($img, 0, 0, $green); // 4.绘制矩形 imagerectangle($img, 25, 25, 100, 100, $red); // 线条矩形 imagefilledrectangle($img, 100, 100, 200, 200, $red);// 实心矩形
3.3 绘制圆形、椭圆
<?php
// 1.新建一个真彩色图像,成功后返回图象资源,失败后返回 FALSE 。
$img = imagecreatetruecolor(300, 300);
// 2.为一幅图像分配颜色,返回一个标识符,代表了RGB组成的颜色
$green = imagecolorallocate($img, 0, 148, 85);
$red = imagecolorallocate($img, 255, 0, 0);
// 3.区域填充
imagefill($img, 0, 0, $green);
// 4.绘制圆形、椭圆
imageellipse($img, 150, 150, 50, 50, $red); // 绘制空心圆形
imageellipse($img, 150, 150, 50, 100, $red); // 绘制空心椭圆
imagefilledellipse($img, 100, 100, 50, 50, $red); // 绘制实心圆形
imagefilledellipse($img, 200, 200, 20, 30, $red); // 绘制实心椭圆
header('Content-Type:image/png');
imagepng($img);
imagedestroy($img);
3.4 绘制文字
<?php
$img = imagecreatetruecolor(500, 300);
$red = imagecolorallocate($img, 255, 0, 0);
$white = imagecolorallocate($img, 255,255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $red);
$font_path = getcwd().'/simkai.ttf';
$text = '我爱你中国';
imagettftext($img, 19, 0, 65, 65, $white, $font_path, $text);
header('Content-Type:image/png');
imagepng($img);
imagedestroy($img);