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


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字符串截取问题
Nov 28 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
php获得url参数中具有&的值的方法
Mar 05 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
php去除html标记的原生函数详解
Jan 27 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
IIS下PHP的三种配置方式对比
2014/11/20 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
微信小程序如何自定义table组件
2019/06/29 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python学习入门之区块链详解
2017/07/25 Python
Python编程实现蚁群算法详解
2017/11/13 Python
浅述python中深浅拷贝原理
2018/09/18 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python 列表推导式使用详解
2019/08/29 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
Python如何获取文件路径/目录
2020/09/22 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
生日寄语大全
2014/04/08 职场文书
2014年新生军训方案
2014/05/01 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python