玩转图像函数库—常见图形操作(PHP)

函数|图形

我尽量不说大理论,诸如什么是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
$width=35;
$height=35;
//创建对象
$image=imagecreate($width,$height);
//提取颜色
$color_white=imagecolorallocate($image,255,255,255);//白色
$color_blue=imagecolorallocate($image,0,0,108);//蓝色
imagefill($image,0,0,$color_blue);
//作图
 //线宽
imagesetthickness($image,3);
imageline($image,0,0,$width,$height ,$color_white);
imageline($image,$width,0,0,$height ,$color_white);

//发送对象至头
header('content-type:image/png');
imagepng($image);
 /*
 //发送对象至文件
 $filename="ex1.png";
 imagepng($image,$filename);
 */
//销毁对象
imagedestroy($image);
?>

输出图象:

在线演示: http://www.phzzy.org/temp/5do8/ex1.php

[1] [2] [3] 下一页  

时间: 2025-01-26 22:36:55

玩转图像函数库—常见图形操作(PHP)的相关文章

玩转图像函数库—常见图形操作_PHP编程

我尽量不说大理论,诸如什么是png,自己查解决. PHP自4.3版本开始,捆绑了自己的GD2库,用户可以自己下载并设置.如果要查看自己的php版本是否支持gd模块(支持JPEG,PNG,WBMP但不再支持GIF),如下方式是一种方法: if(!function_exists('imagecreate')) {die('本服务器不支持GD模块');} 如果不支持的话,如何配置 ? 下载gd模块的dll文件,修改php.ini,重启服务器即可. 以下简称PHP作图为PS. 当您打算 PS的话,应该完

.NET3.5 GDI+图形操作2

10.1.3 .NET对绘图的支持 .NET对图形操作的支持类库都集中在System.Drawing命名空间下.所以在直接使用.NET类 库时,不要忘记添加using System.Drawing. 下表列出了绘图常的类库,下一节将以示例的方式辅助理解. 上表只是罗列了部分常用类型,在基本图形操作中已经足够了.用户可以使用GDI+在 Windows窗体和控件上呈现图形图像.虽然无法在Web窗体上直接使用GDI+, 但可以通过形成 图片的方式将图像发送到客户端浏览器. 另外,图形操作是非常耗费计算

.NET3.5 GDI+图形操作1

前言: 本文章转载自本人刚刚买的<ASP.NET 3.5从入门到精通>这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些 失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行 会出现些显示问题,本人更改了其中的一些代码.本文章经历昨晚本人五个小时的手打而成 (且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话 说:好记性不如烂笔头,把书的内容手打出来

PHP SPL标准库之文件操作

  这篇文章主要介绍了PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例,本文讲解SplFileInfo用来获取文件详细信息.SplFileObject遍历.查找指定行.写入csv文件等内容,需要的朋友可以参考下 PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作. SplFileInfo用来获取文件详细信息: 代码如下: $file = new SplFileInfo('foo-bar.txt'); print_r

PHP5中GD库生成图形验证码(有汉字)

本文为大家介绍下利用PHP5中GD库生成图形验证码而且带有汉字,具体的实现思路及代码如下,有需求的朋友可以参考下,希望对大家学习php有所帮助   利用PHP5中GD库生成图形验证码   类似于下面这样 1.利用GD库函数生成图片,并在图片上写指定字符 imagecreatetruecolor 新建一个真彩色图像 imagecolorallocate 为一幅图像分配颜色(调色板) imagestring 绘制字符 imageline 绘制线条 imagesetpixel 打像素点 2.输出图片

Windows系统常见的操作误区盘点

常见的操作误区比如:疯狂刷新.最大化窗口.刚买硬盘(或者刚买新电脑)第一件事先分区等等,看看下文你占几条 1,疯狂刷新 相信很多人跟我以前一样,一进入Windows桌面,就开始疯狂的刷新.否则不过瘾.其实很多从Dos,Win3.2走过来的人都知道,最早的 Windows打开一个资源管理器窗口,显示的内容就是打开的一刹那,该目录中有的文件.假设你现在用记事本在该目录保存一个txt,在资源管理器中是看不到的,必须手动刷新.这也就是"刷新"功能的由来.之所以XP以及Vista. Win7可以

PHP图形操作之Jpgraph学习笔记_php技巧

本文实例讲述了PHP图形操作之Jpgraph学习笔记.分享给大家供大家参考,具体如下: 一.Jpgraph安装配置 下载Jpgraph安装包 解压后放置磁盘中,(最好是放在和网页一起) 修改php.ini文件: 1.内存  memory_limit=X,至少为32M 2.执行时间  max_execution_time=X,对于复杂的图片加载时需要较多的时间,根据图片的复杂度做相应的修改 3.缓存  output_buffering  注释掉缓存,便于调试 二.使用Jpgraph创建图形的基本步

oracle 11g-关于Oracle11g数据库与pl/sql图形操作界面连接自己服务器和远程服务器的问题

问题描述 关于Oracle11g数据库与pl/sql图形操作界面连接自己服务器和远程服务器的问题 是这样的:公司有一个服务器专门管理项目的数据库,所以我们员工的电脑只装了服务端(今天重装我才知道Oracle有服务端跟客户端之分呀),因为我是新手 对这些不是很了解, 如果 我想把服务端的某个数据库整个弄下来到我自己电脑(本地) 运行项目的时候连接本地这个数据库(因为在开发完之后 测试的数据库会被清理掉 这样我用来学习的项目就连接不上了 我想保留这个数据库到本地 方便我学习),那么 我该怎么做?是不

Fluxbox v1.3.1发布 GNU/Linux的轻量级图形操作界面

Fluxbox是一个基于GNU/Linux的轻量级图形操作界面,它基于Blackbox 0.61.1代码开发,它虽然没有GNOME和KDE那样精美,但由于它的运行对系统资源和配置要求极低,所以它被安装到很多较旧的或是对性能要求较高的机器上,其菜单和相关配置被保存于用户根目录下的.fluxbox目录里,这样使得它的配置极为便利. Fluxbox是类Unix系统里一个极为轻量极的图形界面,它的运行速度相当快.它基于Blackbox并与之相兼容,这两者的窗体控件,色调等都极为相似.Fluxbox对KD