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


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(3)
Oct 09 PHP
php+oracle 分页类
Oct 09 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 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
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
Python3中关于cookie的创建与保存
2018/10/21 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
linux面试题参考答案(8)
2015/08/11 面试题
金融专业推荐信
2013/11/14 职场文书
物业招聘计划书
2014/01/10 职场文书
上课打牌的检讨书
2014/02/15 职场文书
感恩的演讲稿
2014/05/06 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
酒店前台辞职书
2015/02/26 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
安全教育第一课观后感
2015/06/17 职场文书
春节慰问简报
2015/07/21 职场文书
2016中秋节广告语
2016/01/28 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL