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


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也可以?成Shell Script
Oct 09 PHP
数据库的日期格式转换
Oct 09 PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
php页面防重复提交方法总结
Nov 25 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
PHP的PDO连接讲解
Jan 24 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 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 autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
python3安装speech语音模块的方法
2018/12/24 Python
Python调用服务接口的实例
2019/01/03 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
对python 调用类属性的方法详解
2019/07/02 Python
五种Python转义表示法
2020/11/27 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
2014新课程改革心得体会
2014/03/10 职场文书
追悼会主持词
2014/03/20 职场文书
工程质量承诺书
2014/03/27 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫