GD库
一、GD库的作用
1.生成缩略图
2.对图片加水印
3.验证码
4.对网站数据生成报表
5.说明:由于GIF使用了有版权争议的LZW算法,容易引起法律问题,于是从GD-1.6开始,GD库不再支持GIF,改为支持更好的、无版权争议的PNG
二、GD库的用法
1.创建画布
说明:画布实际上就是在内存中开辟一块临时的内存区域,用于存储图像信息
有3种方法:
①imagecreate(int x_size,int y_size)
②imagecreatetruecolor(int x_size,int y_size)
③从已经存在的图像文件中创建图像
imagecreatefromgif(string filename)
imagecreatefromjpeg(string filename)
imagecreatefrompng(string filename)
imagecreatefromwbmp(string filename)
说明:imagecreate()与imagecreatetruecolor()作用一样,区别是:各自能够创建的颜色种数不同。imagecreate()函数只支持256色;而 imagecreatetruecolor()函数可以创建一个真彩色图像,但是不能用于GIF格式的图像。
2.绘制图像
①区块填充
imagefill(resource image,int x,int y, int color)
②绘制点
imagesetpixel(resource image,int x,int y,int color)
③绘制直线
imageline(resource image,int x1,int y1,int x2,int y2,int color)
④绘制矩形
imagerectangle(resource image,int x1,int y1,int x2,int y2,int color)
⑤绘制并填充矩形
imagefilledrectangle(resource image,int x1,int y1,int x2,int y2,int color)
⑥绘制多边形
imagepolygon(resource image,array points,int num_points,int color)
⑦绘制并填充多边形
imagefilledpolygon(resource image,array points,int num_points,int color)
⑧绘制椭圆
imageellipse(resource image,int cx,int cy,int w,int h,int color)
⑨绘制并填充椭圆
imagefilledellipse(resource image,int cx,int cy,int w,int h,int color)
⑩绘制弧线
imagearc(resource image,int cx,int cy,int w,int h,int s,int e,int color)
s和e代表从椭圆中截取的角度
(11)水平绘制文字
imagestring(resource image,int font,int x,int y,string s,int color)
(12)垂直绘制文字
相当于将水平绘制的文字逆时针旋转90度
imagestringup(resource image,int font ,int x,int y,string s,int color)
(13)水平绘制一个字符的文字
imagechar(resource image,int font,int x,int y,string c,int color)
(14)垂直绘制一个字符的文字
相当于将水平绘制的字符逆时针旋转90度
imagecharup(resource image,int font,int x,int y,string c,int color)
(15)可以正常输出中文并且自定义字体
imagettftext(resource image,int size,int angle,int x,int y,int color,string fontfile,string text)
3.输出图像
将其输出到浏览器或者保存到服务器上
imagegif(resource image)
imagejpeg(...)
imagepng(...)
imagewbmp(...)
4.释放资源
imagedestroy(resource image)
三、示例
1.图片缩略
1 <?php 2 header("Content-type:image/jpeg"); 3 4 $image=imagecreate(300,300); 5 $image2=imagecreatefromjpeg("logo.jpg"); 6 7 $image2x=imagesx($image2); 8 $image2y=imagesy($image2); 9 10 $bgcolor=imagecolorallocate($image,0,0,0); 11 imagefill($image,0,0,$bgcolor); 12 13 imagecopyresized($image,$image2,0,0,0,0,50,100,$image2x,$image2y); 14 15 imagejpeg($image); 16 imagedestroy($image); 17 ?>
2.水印
1 <?php 2 header("content-type:image/jpeg"); 3 4 $image=imagecreatefromjpeg("a.jpg"); 5 $logo=imagecreatefromjpeg("logo.jpg"); 6 7 $imagew=imagesx($image); 8 $imageh=imagesy($image); 9 10 $logow=imagesx($logo); 11 $logoh=imagesy($logo); 12 13 imagecopy($image,$logo,$imagew-$logow,$imageh-$logoh,0,0,$logow,$logoh); 14 15 imagejpeg($image); 16 ?>

浙公网安备 33010602011771号