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


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 相关文章推荐
echo, print, printf 和 sprintf 区别
Dec 06 PHP
PHP Socket 编程
Apr 09 PHP
PHP 开发环境配置(测试开发环境)
Apr 28 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
不重新编译PHP为php增加openssl模块的方法
Jun 14 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
php对文件进行hash运算的方法
Apr 03 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
PHP 二维array转换json的实例讲解
Aug 21 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP修改session_id示例代码
2014/01/08 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
python数据预处理方式 :数据降维
2020/02/24 Python
PyTorch的torch.cat用法
2020/06/28 Python
企业文化演讲稿
2014/05/20 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
三八节活动主持词
2015/07/04 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
Spring中bean集合注入的方法详解
2022/07/07 Java/Android