|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。创立|静态|技能|剧本 静态创立图像
在装置了某些第三方函数库以后,联合你的图形处置妙技,你就能够用PHP创立和处置图象了。现实上,你也不需求太高的几何学常识。我在中学的时分这门作业老是不合格,如今不也照样会用PHP创立图象!
在利用根基的图象创立函数之前,你需求装置GD库。假如要用到和JPEG相干的图象创立函数你还需求装置jpeg-6b。在图象中利用Type 1字体的时分还必需装置t1lib。
在这里,你还需求对你的体系停止进一步地调剂。起首,你必需装置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-X-250像素的图象而言,用法以下:
$newImg = ImageCreate(250,250);
由于你的图象如今仍是空白,所以你还要想法用某些色采填满它,然而,起首你需求依照色彩的RGB值为每种色彩分派名字,这要用到ImageColorAllocate()函数。函数的格局是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-X-250像素大的蓝色PNG图象。
你还可以用图象创立函数处置图象,好比创立大型图象的缩微图等。
假定你盘算为某个图片制造一个35-X-35像素巨细的缩微图。你要做到就是创立一个新的35 X 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]);
以下是代码正文。
<? /* send a header so that the browser knows the content-type of the file */
header("Content-type: image/png");
/* set up variables to hold the height and width of your new image */
$newWidth = 35;
$newHeight = 35;
/* create a blank, new image of the given new height and width */
$newImg = ImageCreate($newWidth,$newHeight);
/* get the data from the original, large image */
$origImg = ImageCreateFromPNG("test.png");
/* copy the resized image. Use the ImageSX() and ImageSY functions to get the x and y sizes of the orginal image. */
ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));
/* create final image and free up the memory */
ImagePNG($newImg);
ImageDestroy($newImg); ?>
假如你挪用了以上剧本resized.php 并用本人的阅读器会见它,你应当能看到一个35-X-35像素巨细的缩微PNG图。
怎么配置呢 ,问最好的老实百度,问啥都有答案。所以用好搜索引擎是学好的令1个关键,程序会出各样的问题,没有1个人可能会碰到所有的问题,所有就可以问百度这个大家精华的集合了。 |
|