PHP中创建并处理图象

创建

在安装了一些第三方函数库之后,结合图形处理技能,你就可以迅速使用PHP创建和处理图像了。事实上,你也不需要很多几何学知识——因为我在中学的时候这门功课曾经不及格而现在却能使用PHP创建图像!

在使用基本的图像创建函数之前,需要安装GD库。要使用JPEG相关的图像创建函数还需要安装jpeg-6b。在图像中使用Type 1字体的时候还必须安装t1lib。asdf

在这里,你还需要对你的系统设置进行进一步地调整。首先安装t1lib并结束,然后是jpeg-6b。第三步安装GD函数库。确保以上三部分按顺序安装,原因是你需要编译GD库才能使用jpeg-6b库。如果首先安装jpeg-6b,编译就会出错,这会让你不知所措够上一段时间。

在三函数库之后,重新配置PHP。这是在轻松安装PHP的DSO版本时的典型方法。然后执行make clean,命令,并在当前配置提示中加入以下代码:

--with-gd=[/path/to/gd]

--with-jpeg-dir=[/path/to/jpeg-6b]

--with-t1lib=[/path/to/t1lib]

最后执行make、make install完成配置。重新启动 Apache,并运行phpinfo()函数以检查新功能是否正常运行,然后就可以开始了。

取决于安装的GD库版本,你可能具有创建GIF或者PNG图像的能力。关键是如果你已经安装了gd-1.6或者早期版本,则可处理GIF文件,但不能处理PNG文件;如果安装了gd-1.6或者以后版本,你可以处理PNG文件却又不能处理GIF文件。

创建一个简单的图像需要几个函数。我将按步骤演示如下。

输出包含你所创建图像MIME类型的文件头,本例中为PNG。

header ("Content-type: image/png");

使用ImageCreate()创建一变量存放空白图像。该函数需要一个图片像素尺寸。格式为ImageCreate(x_size, y_size),对250*250像素的图片,如下:

$newImg = ImageCreate(250,250);

由于此时你的图像还是空白,所以需要用某些色彩填满它。但首先需要用ImageColorAllocate()函数按照颜色的RGB值为每种颜色确定名字。函数的格式为ImageColorAllocate([image], [red], [green], [blue])。如是天蓝色,应使用:

$skyblue = ImageColorAllocate($newImg,136,193,255);

接着,用ImageFill()函数为图像填充以上颜色。实际上ImageFill()函数有多个版本,如ImageFillRectangle(), ImageFillPolygon()等等。为简单起见,采用ImageFill()函数进行颜色填充,格式如下:

ImageFill([image], [start x point], [start y point], [color])

ImageFill($newImg,0,0,$skyblue);

最后,创建最终图像并破坏图像流以释放内存并在结束后整理系统:

ImagePNG($newImg);

ImageDestroy($newImg);

你的代码应该看起来像这样:

<? header ("Content-type: image/png");

$newImg = ImageCreate(250,250);

$skyblue = ImageColorAllocate($newImg,136,193,255);

ImageFill($newImg,0,0,$skyblue);

ImagePNG($newImg);

ImageDestroy($newImg);

?>

如果调用脚本skyblue.php 并用自己的浏览器访问它,就会看到一个250*250像素的蓝色PNG图像。

还可以用图像创建函数处理图像,如对大图像创建的缩略图等。

假设你打算为某图片制作一个35*35像素大小的缩略图。所要做的即创建一个新的35*35像素大小图像;并产生一个包含原始图像内容的图像流;然后改变原始图像的大小,并将其放到新的空白图像中去。

达到此目的的关键函数是ImageCopyResized(),,格式如下所示:ImageCopyResized([new image handle],[original image handle],[new image X],[new Image Y],[original image X],[original image Y], [new image X], [new image Y],[original image X],[original image Y]);

注释在代码下面:

<? /* 发送文件头以使浏览器知道文件类型*/

header("Content-type: image/png");

/* 设置变量保存新图片长宽*/

$newWidth = 35;

$newHeight = 35;

/* 以给定长和宽创建空白新图片 */

$newImg = ImageCreate($newWidth,$newHeight);

/* 从原始大图获取数据 */

$origImg = ImageCreateFromPNG("test.png");

/* 复制更改尺寸后的图片。使用函数 ImageSX() 及 ImageSY 获取原始图片的x及x尺寸 */

ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));

/* 创建最终图片并清空内存 */

ImagePNG($newImg);

ImageDestroy($newImg); ?>

如果调用脚本resized.php并使用浏览器访问此文件,可以看到一个35*35像素的缩略PNG图片。

时间: 2024-10-29 15:30:43

PHP中创建并处理图象的相关文章

PHP中创建并处理图象_php基础

在安装了一些第三方函数库之后,结合图形处理技能,你就可以迅速使用PHP创建和处理图像了.事实上,你也不需要很多几何学知识--因为我在中学的时候这门功课曾经不及格而现在却能使用PHP创建图像! 在使用基本的图像创建函数之前,需要安装GD库.要使用JPEG相关的图像创建函数还需要安装jpeg-6b.在图像中使用Type 1字体的时候还必须安装t1lib.asdf 在这里,你还需要对你的系统设置进行进一步地调整.首先安装t1lib并结束,然后是jpeg-6b.第三步安装GD函数库.确保以上三部分按顺序

excel表格中的数据怎么创建为曲面图?

  excel表格中的数据怎么创建为曲面图?          1.首先,打开一篇excel. 2.按住ctrl键,选择你要做成图表的数据的那一行或者那一列.比如我选择姓名,高数,英语,语文这四列. 3.然后点击菜单栏上面的"插入"的"图表"旁边的向下拉按钮.如图所示. 4.在弹出的窗口中选择"所有图表",如图所示. 5.然后点击"曲面图",选择哪种曲面图即可,之后再点击"确定".结果如图所示. 6.点击图

如何在Excel2010中创建迷你图?

  1.打开需要编辑的资料,单击H4单元格,在"插入"选项卡的"迷你图"中,选择迷你图的类型. 2.打开"创建迷你图". 3.在"数据范围"中,输入基于数据的单元格区域,如图中的单元格区域B4:F4,其中的目的就是对2008-2012年的收入趋势进行反映. 4.在"位置范围"框中指定迷你图的放置位置,默认的情况下单元格不做改变,单击"确认". 5.在H4单元格中输入文本"收入趋

《Unity着色器和屏幕特效开发秘笈》—— 2.6 在Unity编辑器中创建程序纹理贴图

2.6 在Unity编辑器中创建程序纹理贴图 有时你为了创建更多不一样的效果,需要动态创建纹理或者在运行时修改它们的像素值,这种情况通常被称为程序性的纹理效果.不同于你在图像编辑软件中手动制作一些新纹理,你需要在一个二维空间中创建一组像素然后将其应用到一个新的纹理上.再将创建的新纹理传入到着色器中,使它们可以在着色器中进行计算.这种技术在已有的纹理贴图上进行绘图是非常有用的,我们使用动态创建纹理贴图的方式可以制造一种玩家和游戏环境之间的互动效果.也可以用它来制作一些贴花的效果,或者创建一些可以在

在Word2010文档中创建电子邮件超链接

Word2010文档中的超链接除了可以指向网页或其他文件意外,还可以指向电子邮件地址.当用户点击Word2010文档中的电子邮件超链接时,将自动打开本机中的电子邮件客户端程序(例如Outlook)编辑邮件,并自动填写收件人的电子邮件地址.在Word2010文档中创建电子邮件超链接的步骤如下所述: 第1步,打开Word2010文档窗口,选中需要创建电子邮件链接的文字.切换到"插入"功能区,在"链接"分组中单击"超链接"按钮,如图1所示. 图1 单击

在Exchange 2007中创建邮箱过滤查看

尤其是对于那些公司规模更为庞大的系统管理员们来说,在Exchange2007的管理控制台上加强巩固"邮箱查看"功能,无疑是一个重大的胜利.创建一个"邮箱过滤查看"功能,可以有效的简化在Exchange2007邮箱中查找和管理的过程. 邮箱过滤查看可以按照您活动目录所设置的属性来进行.例如,您想创建一个邮箱过滤查看,让其在Exchange控制台上只显示出本公司市场部的全体员工的邮箱. 在这里要说明一下,所有关于微软的新产品,例如Exchange Server2007,

在Excel2003中创建XML映射

excel|xml|创建 Microsoft Office Excel 2003 通过允许您将自己的 XML 架构定义 (XSD) 添加到工作薄,提高了对使用本机 XML 的支持.这样可以创建一个 XML 映射,用于在导入或导出数据时使数据变得更有意义.因此,您可以导入符合自定义 XML 词汇或架构的数据,然后使用相同的XML 架构将该数据写回去. 该功能面向 Office 解决方案开发人员,但专家用户也能够很好地使用它.该功能使您能够: • 在 Excel 电子表格和 XML 结构之间创建一个

在Eclipse中创建新的重构功能

创建 对重构的强大支持是软件开发人员喜爱Eclipse的一个最为重要的原因.而Eclipse还有一个至少和重构不相上下的优点,那就是其近乎无懈可击的可扩展性.这两者的结合意味着我们可以根据自己的需要来创建展新的重构功能. 介绍 重构在现代软件开发过程中扮演着重要的角色,它能够减轻软件开发人员的工作负担,提高软件开发的生产效率.为了阐明重构的重要性,我们在这里引用了developerWorks上David Carew提供的关于重构的教程中的一段话: 现在,一个开发者的工作大部分在于对现有的代码进行

在 ASP.NET 2.0 中创建 Web 应用程序主题

asp.net|web|程序|创建 引言 主题是 Microsoft ASP.NET 2.0 的一项新增功能,使用此功能可以一次定义一组控件的外观,并可以将该外观应用于整个 Web 应用程序.例如,通过利用主题功能,您可以在一个中心位置为应用程序中的所有 TextBox 控件定义共同的外观,如背景颜色和前景颜色.使用主题功能可以轻松建立并维护整个网站外观的一致性. 主题与级联样式表并不相同.使用级联样式表可以控制浏览器上的 HTML 标记的外观.而主题则应用在服务器上,并适用于 ASP.NET