PHP的GD库系列1-GD库的相关介绍
来源:互联网 发布:适用于mac的壁纸 编辑:程序博客网 时间:2024/05/16 14:00
I:相关介绍
在PHP中,有一些简单的图像函数是可以直接使用的,但大多数要处理的图像,都需要在编译PHP时加上图像函数的GD
库。除了安装GD库之外,在PHP中还可能需要其他的库,这可以根据需要支持哪些图像格式而定。
不同的GD版本支持的图像格式不完全一样,最新的GD库版本支持GIF、JPEG、PNG、WBMP、XBM等格式的图像文件,
此外还支持一些如FreeType、Type 1等字体库。通过GD库中的函数可以完成各种点、线、几何图形、文本以及颜色的操作
和处理,也可以创建或读取多种格式的图像文件。
在PHP中,通过GD库处理图像的操作,都是先在内存中处理,操作完成以后再以文件流的方式,输出到浏览器或保存在服
务器的磁盘中。创建一个图像应该完成如下所示的四个基本步骤。
(1)创建画布:所有的绘图设计都需要在一个背景图片上完成,而画布实际上就是在内存中开辟的一块临时区域,用于存
储图像的信息。以后的图像操作都将基于这个背景画布,该画布的管理就类似于我们在画画时使用的画布。
(2)绘制图像:画布创建完成以后,就可以通过这个画布资源,使用各种画像函数设置图像的颜色、填充画布、画点、线
段、各种几何图形,以及向图像中添加文本等。
(3)输出图像:完成整个图像的绘制以后,需要将图像以某种格式保存到服务器指定的文件中,或将图像直接输出到浏览
器上显示给用户。但在图像输出之前,一定要使用header()函数发送Content-type通知浏览器,这次发送的是图片不是文本。
(4)释放资源:将图像被输出以后,画布中的内容也不再有用。出于节约系统资源的考虑,就需要及时清除画布占用的所
有内存资源。
II:PHP GD库中的常用函数
1. 在PHP中,使用GD库创建画布时,可以使用下面的两个函数:
imagecreate()函数:通常只支持256色。
imagecreatetruecolor()函数:可以创建一个真彩色图像,但是不能用于GIF格式的图像。
2. PHP还可以从已经存在的图像文件中创建图像。在已经存在的图像文件中,支持的图像格式有:
GIF、JPEG、PNG和WBMP等。
创建不同格式的图像,需要用到不同的函数。这些函数是:
imagecreatefromgif()函数:从gif文件中创建图层。
imagecreatefromjpeg()函数:从jpg文件中创建图层。
imagecreatefrompng()函数:从png文件中创建图层。
imagecreatefromwbmp()函数:从bmp文件中创建图层。
对这些函数进行操作时,一般需要获取它们的长宽等参数,此时可以借助下面的函数分别获取创建图层
的宽度和高度:
imagesx()函数:获取创建图层的宽度。
imagesy()函数:获取创建图层的高度。
3. 就像在画画时选择不同颜色的彩色笔一样,在GD库中只需要使用imagecolorallocate()函数即可达
到设置颜色的效果。要在图形中使用多种色彩,只需要多次调用该函数即可实现。
4. 使用GD库提供的函数绘制完成图像以后,需要将其输出到浏览器或者保存到服务器上。使用下面的
GD库函数,可以直接生成GIF、JPEG、PNG和WBMP等4种类型的图像:
imagegif()函数:生成GIF格式的图像。
imagejpeg()函数:生成JPEG格式的图像。
imagepng()函数:生成PNG格式的图像。
imagewbmp()函数:生成WBMP格式的图像。
这4个函数的使用方法都是一样的,它们都有两个参数,并且第2个参数是可以省略的。第1个参数是图
像资源集,第2个参数只有当需要保存创建的图像到服务器上时才会使用,它为需要保存文件的文件名和路
径。如果不需要保存到服务器上,可以结合header()函数发送头信息,通知浏览器使用正确的MIME类型去接
收并解析内容,让浏览器知道发送过来的是图像而不是HTML。
5. 当图形资源使用完毕后,一定要使用imagedestroy()函数将不使用的资源销毁,以便释放内存。
1 0
- PHP的GD库系列1-GD库的相关介绍
- GD库的介绍
- PHP GD库的支持
- php GD库的配置
- php GD库的使用
- [Lpp]PHP的GD库
- 【PHP】GD库笔记 初探GD库的坐标
- PHP的GD库GD函数详解-获得信息
- PHP GD库处理图片的相关常用函数(二)
- GD库的安装
- GD 库的使用
- GD库的学习
- 玩转PHP的GD库
- 使用PHP的gd库出现问题
- 使用PHP的gd库出现问题
- 用Imagick替代php的GD库
- CentOS下安装php的GD库
- CentOS下安装php的GD库
- 【线性规划与网络流24题 4】魔术球
- actionbar的相关知识
- 原始套接字实例:MAC 头部报文分析
- python 生成巨大的excel表格xlsxwriter
- WPF学习笔记——DataContext 与 ItemSource
- PHP的GD库系列1-GD库的相关介绍
- Hi3516A开发--RTC电路
- Android Studio 之 Grandle
- centos 6.4 安装php 5.6.26 源码安装
- 动态的获取label文本的宽度和高度,来判断是不是需要折行显示
- 判断UIViewController是否正在显示
- filter的配置不同,所进行的操作不同,需要解决~~~
- CoreAnimation4-隐式动画和显式动画
- 对H264进行RTP封包原理