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


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 相关文章推荐
JpGraph php柱状图使用介绍
Aug 23 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
php表单敏感字符过滤类
Dec 08 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
php安装swoole扩展的方法
Mar 19 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
PHP反射API示例分享
Oct 08 PHP
微信自定义分享php代码分析
Nov 24 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
WordPress伪静态规则设置代码实例
Dec 10 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 fread()使用技巧
2010/01/22 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
Python学习小技巧之列表项的拼接
2017/05/20 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
汽车销售顾问求职自荐信
2014/01/01 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
财务检查整改报告
2014/11/06 职场文书
高中班长竞选稿
2015/11/20 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL