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


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 应用程序安全防范技术研究
Sep 25 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 PHP
PHP header()函数常用方法总结
Apr 11 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
详解PHP实现执行定时任务
Dec 21 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
PHP对象相关知识总结
Apr 09 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
php在linux环境中如何使用redis详解
Dec 15 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
Python实现命令行通讯录实例教程
2016/08/18 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
python同时替换多个字符串方法示例
2019/09/17 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫