今天了解了一些GD库的简单使用,现在稍微做一下总结!
GD库是什么?,graphic device,图像工具库,gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上 GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
php并不局限于输出HTML文本。php通过使用GD扩展库还能用来动态输出图像,例如文字按钮、验证码、数据统计图等。哈可以轻松地编辑图像,力图处理缩略图和为图片添加水印等,具有强大的图像处理能力。
首先我们来说下GD库,绘制个简单图形的一些步骤:
1、首先是创建画布,此处我们利用imagecreatetruecolor函数,也可以利用imagecreate,区别在于前者创建了一个真彩图像,后者创建了一个基于调色板的图像
$img=imagecreatetruecolor(100,100),其中有两个参数分别对应,我们创建的图像的宽和高
2、设置一些必要的"染料盒"
其实就是定义一些之后会用到的填充颜色,此处我们统一定义在这个位置,此处我们利用imagecolorallocate函数
$white=imagecolorallocate($img,0xFF,0xFF,0xFF)或者可以使用RGB的颜色命名方式 如$white=imagecolorallocate($img,255,255,255);
<span style="color: #800080;">$gray</span> = imagecolorallocate(<span style="color: #800080;">$img</span>, 0xC0, 0xC0, 0xC0<span style="color: #000000;">); </span><span style="color: #800080;">$darkgray</span> = imagecolorallocate(<span style="color: #800080;">$img</span>, 0x90, 0x90, 0x90<span style="color: #000000;">); </span><span style="color: #800080;">$navy</span> = imagecolorallocate(<span style="color: #800080;">$img</span>, 0x00, 0x00, 0x80<span style="color: #000000;">); </span><span style="color: #800080;">$darknavy</span> = imagecolorallocate(<span style="color: #800080;">$img</span>, 0x00, 0x00, 0x50<span style="color: #000000;">); </span><span style="color: #800080;">$red</span> = imagecolorallocate(<span style="color: #800080;">$img</span>, 0xFF, 0x00, 0x00<span style="color: #000000;">); </span><span style="color: #800080;">$darkred</span> = imagecolorallocate(<span style="color: #800080;">$img</span>, 0x90, 0x00, 0x00<span style="color: #000000;">); </span><span style="color: #800080;">$black</span>=imagecolorallocate(<span style="color: #800080;">$img</span>,0x00,0x00,0x00);
此处我们定义多一些所需要的颜色
3、填充区域颜色,可以简单的理解为填充图片的背景颜色,利用imagefill函数
imagefill($img,0,0,$white),此处的0 0表示从坐标x y处开始填充背景色
4、绘制图形,例如绘制饼状图,所需要的是imagefilledarc函数
imagefilledarc()的参数相对来说较多,形如imagefilledarc($img,50,$i,100,50,0,45,$red,IMG_ARC_PIE);
其中分别表示以red颜色字img图像上绘制一个以50,$i为起点,以0 45角度这个范围内绘制弧线
5、期间我们还可以添加一些说明问题,比如水平的添加一个字符串,利用 imagestring($img,1,20,40,"hello,world!",$red),表示在img图片中以20 40为坐标,写上一个红色的hello,world!字样
6、就是讲图像输出
首先要告之浏览器要以何种图片格式输出,例如以png输出,则使用header("Content-type:image/png");
其次 将图片输出到浏览器中,imagepng($img);
最后,销毁图片,即释放该图片存储所占用的内存 imagedestroy(img);,