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


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运行模式的深入理解
Jun 03 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
PHP CURL获取cookies模拟登录的方法
Nov 04 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
PHP输出日历表代码实例
Mar 27 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
php使用GD2绘制几何图形示例
Feb 15 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
php微信公众号开发之图片回复
Oct 20 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
了解JavaScript表单操作和表单域
2019/05/27 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python编写简单爬虫资料汇总
2016/03/22 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
python实现各进制转换的总结大全
2017/06/18 Python
使用tensorflow实现AlexNet
2017/11/20 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
如何进行Linux分区优化
2013/02/12 面试题
销售代表求职自荐信
2013/10/01 职场文书
大学生专业个人学习的自我评价
2013/10/26 职场文书
实习生的自我评价
2014/01/08 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
社区党支部承诺书
2015/04/29 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python