文章目录[x]
- 1:绘画的基本操作
- 1.1:创建画布
- 1.2:分配颜色
- 1.3:填充颜色
- 1.4:绘制基本图形
- 1.5:输出画布
- 2:绘制验证码
- 3:制作水印
- 4:缩略图
验证码绘制,水印制作,缩略图。
绘画的基本操作
默认php是不支持绘画技术的,先手动开启php扩展。
创建画布
语法:
imagecreatetruecolor(w,h);
说明:
w 表示的是所要创建的画布宽;h 表示所要所要创建的画布高;如果创建成功返回的一个gd资源
分配颜色
语法:
imagecolorallocate(img,r,g,b);
说明:
img 画布资源(gd资源)
r,g,b 十进制的颜色表示方式;此函数仅是创建了一个颜色资源,但并没有使用。
填充颜色
语法:
imagefill(img,x,y,color);
说明:
img 画布资源
x,y 画布上的某个点
color 所要填充的颜色
绘制基本图形
绘制矩形
语法:
imagerectangle(img,x1,y1,x2,y2,color)
说明:
rectangle矩形
img 画布资源
x1,y1 左上角顶点坐标
x2,y2 右下角顶点坐标
color 所要绘制的矩形边线的颜色
绘制直线
语法:
imageline(img,x1,y1,x2,y2,color);
说明:
img 画布资源
x1,y1 所要绘制的直线的起点坐标
x2,y2 所要绘制的直线的终点坐标
color 直线的颜色
绘制字母
语法:
imagestring(img,size,x,y,string,color);
说明:
img 画布资源
size 文字大小,0至5个等级
x,y 所要绘制内容的左上角坐标
string 所要绘制的内容
color 所要绘制的内容的颜色
绘制汉字
语法:
imagettftext(img,size,angle,x,y,color,font,text);
说明:
img 画布资源
size 大小,单位像素
angle 角度
x,y 所要绘制的内容的左下角坐标
color 所要绘制的内容的颜色
font 所要绘制的内容的字体
text 所要绘制的内容
输出画布
imagejpeg(img【,filename】)
imagepng(img【,filename】)
imagegif(img【,filename】);
说明:
img 画布资源
filename 表示是所要保存的文件名,可以省略,如果省略表示输出到浏览器
在输出到浏览器之前必须设置header(‘content-type:image/gif’)
在将画布输出到浏览器时,不要有任何多余的输出,如果无法显示图片,需要将header()注释掉才可以看到错误信息。
绘制验证码
①、生成随机字符串
我们规定验证的字符串包含a-z,A-Z,0-9
②、绘制验证码
制作水印
语法:
imagecopymerge(dest,src,d_x,d_y,s_x,s_y,s_w,s_h,op);
说明:
dest 目标图片(用户图片)
src 原图片(公司logo)
d_x,d_y 目标图片上的某个点
s_x,s_y 原图片上的某个点
s_w,s_y 表示宽,高
op 表示透明度
在src图片从s_x,s_y为起点复制s_w为宽,s_h为高的区域,放在dest图片以d_x,d_y表示的一个点上。
缩略图
语法:
imagecopyresampled(dest,src,d_x,d_y,s_x,s_y,d_w,d_h,s_w,s_h);
说明:
dest 目标图片(框)
src 用户图片
d_x,d_y 目标图片上的某个点
d_w,d_h 表示宽,高
s_x,s_y 用户图片上的某个点
s_w,s_y 表示宽,高
在src上从s_x,s_y为起点,截取以s_w为宽,s_h为高的区域放在dest画布上以d_x,d_y为顶点,以d_w为宽,d_h为高的区域