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


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&&mysql)六
Oct 09 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
php cookie 详解使用实例
Nov 03 PHP
详细解读php的命名空间(一)
Feb 21 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
Oct 17 PHP
PHP+MySql实现一个简单的留言板
Jul 19 PHP
利用ajax+php实现商品价格计算
Mar 31 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
xajax写的留言本
2006/11/25 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
小谈php正则提取图片地址
2014/03/27 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
《两只鸟蛋》教学反思
2014/02/10 职场文书
技能比赛获奖感言
2014/02/14 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
机关搬迁方案
2014/05/18 职场文书
小组口号大全
2014/06/09 职场文书
聘任书格式及范文
2015/09/21 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
python 闭包函数详细介绍
2022/04/19 Python
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS