玩转图像函数库―常见图形操作


Posted in PHP onSeptember 03, 2006

我尽量不说大理论,诸如什么是png,自己查解决.

PHP自4.3版本开始,捆绑了自己的GD2库,用户可以自己下载并设置.如果要查看自己的php版本是否支持gd模块(支持JPEG,PNG,WBMP但不再支持GIF),如下方式是一种方法:

if(!function_exists('imagecreate')) {
die('本服务器不支持GD模块');
}

如果不支持的话,如何配置 ? 下载gd模块的dll文件,修改php.ini,重启服务器即可.

以下简称PHP作图为PS.

当您打算 PS的话,应该完成如下如下步骤,这是必经的.

1:创建基本PS对象(我假设为$image),填充背景(默认黑),以后的全部ps操作都是基于这个背景图像的.
2:在$image上作图.
3:输出这个图像.
4:销毁对象,清除使用内存.

首先,我们来认识几个常用的函数,这些函数在php手册里面都有详细介绍,此处大体引用下.

resource imagecreate ( int x_size, int y_size )
imagecreate() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的空白图像。
此函数基本同imagetruecolor($width,$height).

int imagecolorallocate ( resource image, int red, int green, int blue )
imagecolorallocate() 返回一个标识符,代表了由给定的 RGB 成分组成的颜色。image 参数是 imagecreatetruecolor() 函数的返回值。red,green 和 blue 分别是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。imagecolorallocate() 必须被调用以创建每一种用在 image 所代表的图像中的颜色。

bool imagefill ( resource image, int x, int y, int color )
imagefill() 在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。

bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )
imageline() 用 color 颜色在图像 image 中从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0)画一条线段。

bool imagestring ( resource image, int font, int x, int y, string s, int col )
imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。

array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
本函数比较重要,参数较多,此处不再列出,它主要是写字到图像上,和上面的函数类似,但必前者强大.

bool imagefilltoborder ( resource image, int x, int y, int border, int color )
imagefilltoborder() 从 x,y(图像左上角为 0, 0)点开始用 color 颜色执行区域填充,直到碰到颜色为 border 的边界为止。【注:边界内的所有颜色都会被填充。如果指定的边界色和该点颜色相同,则没有填充。如果图像中没有该边界色,则整幅图像都会被填充。】

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color )
imagefilledellipse() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)为中心画一个椭圆。w 和 h 分别指定了椭圆的宽和高。椭圆用 color 颜色填充。如果成功则返回 TRUE,失败则返回 FALSE。

输出图像数据:imagepng($image[,$filename])

PHP 相关文章推荐
php正则表达式(regar expression)
Sep 10 PHP
如何修改和添加Apache的默认站点目录
Jul 05 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
PHP简单实现无限级分类的方法
May 13 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
php post json参数的传递和接收处理方法
May 31 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP PDOStatement::closeCursor讲解
Jan 30 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
php layui实现前端多图上传实例
Jul 30 PHP
PHP与Web页面的交互示例详解二
Aug 04 PHP
生成静态页面的PHP类
Jul 15 #PHP
删除无限级目录与文件代码共享
Jul 12 #PHP
PHP截取中文字符串的问题
Jul 12 #PHP
最令PHP初学者头痛的十四个问题
Jul 12 #PHP
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 #PHP
PHP初学者头疼问题总结
Jul 08 #PHP
php分页函数
Jul 08 #PHP
You might like
浅谈php冒泡排序
2014/12/30 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
python实现ping的方法
2015/07/06 Python
Python快速排序算法实例分析
2017/11/29 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
nohup的用法
2014/08/10 面试题
制药工程专业毕业生推荐信
2013/12/24 职场文书
致共产党员倡议书
2014/04/16 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
幼儿教师求职信
2014/05/24 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
作文批改评语
2014/12/25 职场文书
任命书标准格式
2015/03/02 职场文书
交通安全月活动总结
2015/05/08 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
手写实现JS中的new
2021/11/07 Javascript