GD库总结

GD库的基本概念以及函数总结。适用于小白

<?php 
/**
GD库

1.GD库的引入
2.图片处理的典型机制
3.图片处理的坐标体系
4.GD常用函数
5.GD生成缩略图
6.GD给图片添加水印
****/

1.GD库的引入
	打开php.ini,找到dg2.dll,把注释去掉就OK
		print_r(gd_info()); 测试GD库是否安装成功
	
2.图片处理的典型机制
	1.创建画布 		返回类型为资源类型,句柄
		引入其他图片
		imagecreatefromjpeg(filename)
		imagecreatefrompng(filename)
		imagecreatefromgif(filename)
		自己创建画布 
		$im = imagecreatetruecolor(width, height)
	2.创建颜料
		imagecolorallocate(image, red, green, blue)
	3.画布填充
		填充画布是,点(x,y)在哪里,就以点为基础开始向四周蔓延,直到碰见和自己颜色不同的
		imagefill(image, x, y, color)
	4.画线、矩形、椭圆、验证码
	5.保存图片
		header('content-type: image/jpeg;');
		imagejpeg(image,'./xx.jpeg'); // 保存到当前目录下xx.jpeg
		imagepng(image) //直接在浏览器中输出
		imagegif(image)
	6.销毁函数
		imagedestroy(image)

3.图片处理的坐标体系
	屏幕左上角为坐标系原点,向右为X轴正方向,向下为Y轴正方向

4.常用函数
	1.中文英文验证码  imagestring()
		英文随机取得4个
		//$rm = 'ABCDEFGHJKLMNPQRSTabcdefghjkmnpqrstuvwxyz23456789';
		//$rm = substr(str_shuffle($rm),0,4);
		imagestring(image, font, x, y, string, color)

		中文字体随机获得
		// $char = array('中','华','人','民','共','和','国');
		// shuffle($char);
		// $code = implode('', array_slice($char, 0, 4));//array_slice()从数组中取出一段
		imagettftext($im, 15, 0, 10, 30, $randcolor, './STXINGKA.TTF', $code);

	2.添加中文字体 imagettftext()
		imagettftext($im, 40, 30, 167, 252, $randcolor, './STXINGKA.TTF', '我很想念你')
	  添加英文字体 imagestring()
	  	imagestring(image, font, x, y, string, color)

	3.画线  imageline()(知道端点和终点的坐标)
		imageline(image, x1, y1, x2, y2, color)
	
	  画矩形(知道端点坐标,以及对角点坐标)
	  	imagerectangle(image, x1, y1, x2, y2, color)
	
	  画椭圆(知道中心点坐标,长轴和短轴长)
	  	imageellipse(image, cx, cy, width, height, color)
	
	  画圆弧(知道中心点坐标,椭圆长轴短轴,以及圆弧起始角度以及终点角度)
	  	imagearc(image, cx, cy, width, height, start, end, color)
	
	  填充图形,只需要加 filled 就行,只有圆弧多了一个style风格
	  	imagefilledrectangle()
	  	imagefilledellipse()
	  	
	  	圆弧填充 imagefilledarc(image, cx, cy, width, height, start, end, color, style)
	  	最后的参数style,默认都是填充的
	  		0 IMG_ARC_PIE  弧线连接圆弧端点
	  		1 IMG_ARC_CHORD 直线连接圆弧端点
	  		2 IMG_ARC_NOFILL 不填充
	  		4 IMG_ARC_EDGED 直线连接中心点和两端点,呈射线状
	  		style = 0+1+4  1+2+4 等等

5.图片水印功能
	其实就是图片复制功能 + 图像半透明化
	图片复制 imagecopy(dst_im, src_im, dst_x, dst_y, src_x, src_y, src_w, src_h)
		dst_im---> 目标文件(也是最终文件)
		src_im---> 被复制的文件, 也就是复制一份 src 到 dst

	图像半透明化 imagecopymerge(dst_im, src_im, dst_x, dst_y, src_x, src_y, src_w, src_h, pct)
		其实就是图片复制的升级版本,可以自动调整图片的透明度pct, 0表示完全透明, 100表示完全不透明,此时和imagecopy()功能一样

	图像缩略图 imagecopyresampled(dst_image, src_image, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
		可以调整被复制的文件复制到目标图片中的大小,是按照比例缩放的,其中dst_w, dst_h 表示被复制的文件在目标文件上所占用的空间是多大 

	图像边缘渲染(羽化?)效果 imagealphablending(image, blendmode)
		设定图像的混色模式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值