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


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(1)
Oct 09 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
Codeigniter校验ip地址的方法
Mar 21 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
php bootstrap实现简单登录
Mar 08 PHP
joomla组件开发入门教程
May 04 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
laravel请求参数校验方法
Oct 10 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 PHP
php变量与字符串的增删改查操作示例
May 07 PHP
Laravel 修改验证异常的响应格式实例代码详解
May 25 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编程函数安全篇
2013/01/08 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
JavaScript中的私有成员
2006/09/18 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
js分页工具实例
2015/01/28 Javascript
图解js图片轮播效果
2015/12/20 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Python netmiko模块的使用
2020/02/14 Python
python3 logging日志封装实例
2020/04/08 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
2014年店长工作总结
2014/11/17 职场文书
给客户的检讨书
2014/12/21 职场文书
前台文员岗位职责
2015/02/04 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python