唐山网站建设

设为主页 加入收藏 繁體中文

PHP中创建并处理图象

核心提示:PHP编程,PHP教程,PHP5教程,PHP开发

在安装了1些第3方函数库以后,结合图形处理技能,你便可以够迅速使用PHP创建和处理图象了。事实上,你也不需要很多几何学知识——由于我在中学的时候这门作业曾不及格而现在却能使用PHP创建图象!

在使用基本的图象创建函数之前,需要安装GD库。要使用JPEG相干的图象创建函数还需要安装jpeg⑹b。在图象中使用Type1字体的时候还必须安装t1lib。asdf

在这里,你还需要对你的系统设置进行进1步地调剂。首先安装t1lib并结束,然后是jpeg⑹b。第3步安装GD函数库。确保以上3部份按顺序安装,缘由是你需要编译GD库才能使用jpeg⑹b库。假设首先安装jpeg⑹b,编译就会出错,这会让你手足无措够上1段时间。

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

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

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

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

最后履行makemakeinstall完成配置。重新启动Apache,并运行phpinfo()函数以检查新功能是否是正常运行,然后便可以够开始了。

取决于安装的GD库版本,你可能具有创建GIF或PNG图象的能力。关键是假设你已安装了gd⑴.6或早期版本,则可处理GIF文件,但不能处理PNG文件;假设安装了gd⑴.6或以后版本,你可以处理PNG文件却又不能处理GIF文件。

创建1个简单的图象需要几个函数。我将按步骤演示以下。

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

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

使用ImageCreate()创建1变量寄存空缺图象。该函数需要1个图片像素尺寸。格式为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],[startxpoint],[startypoint],[color])

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

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

ImagePNG($newImg);

ImageDestroy($newImg);

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

$newImg=ImageCreate(250,250);

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

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

ImagePNG($newImg);

ImageDestroy($newImg);

?>

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

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

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

到达此目的的关键函数是ImageCopyResized(),,格式以下所示:ImageCopyResized([newimagehandle],[originalimagehandle],[newimageX],[newImageY],[originalimageX],[originalimageY],[newimageX],[newimageY],[originalimageX],[originalimageY]);

注释在代码下面:

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并使用浏览器访问此文件,可以看到1个35*35像素的缩略PNG图片。

http://www.fw8.net/
TAG:图片,文件,函数,图象,像素
评论加载中...
内容:
评论者: 验证码: