海妖 发表于 2015-2-4 00:29:16

PHP网站制作之PHP中创立并处置图像

看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?创立   在装置了一些第三方函数库以后,联合图形处置妙技,你就能够敏捷利用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=
--with-jpeg-dir=
--with-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(, , , )。如是天蓝色,应利用:
$skyblue = ImageColorAllocate($newImg,136,193,255);

接着,用ImageFill()函数为图象填充以上色彩。实践上ImageFill()函数有多个版本,如ImageFillRectangle(), ImageFillPolygon()等等。为复杂起见,采取ImageFill()函数停止色彩填充,格局以下:
ImageFill(, , , )
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(,,,,,, , ,,);
正文在代码上面:

<? /* 发送文件头以使阅读器晓得文件类型*/
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图片。
你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。

不帅 发表于 2015-2-4 13:13:07

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

深爱那片海 发表于 2015-2-8 07:48:45

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

灵魂腐蚀 发表于 2015-2-9 07:07:33

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

飘灵儿 发表于 2015-2-17 20:00:51

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

变相怪杰 发表于 2015-2-28 00:45:38

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

只想知道 发表于 2015-3-4 14:36:06

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

小女巫 发表于 2015-3-8 17:14:26

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。

谁可相欹 发表于 2015-3-13 08:28:00

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

仓酷云 发表于 2015-3-17 19:17:59

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

愤怒的大鸟 发表于 2015-3-24 21:37:55

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

透明 发表于 2015-3-26 23:53:08

本文当是我的笔记啦,遇到的问题随时填充

老尸 发表于 2015-4-2 12:43:15

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

柔情似水 发表于 2015-4-3 05:48:11

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

兰色精灵 发表于 2015-4-4 16:41:47

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

admin 发表于 2015-4-7 20:59:43

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

活着的死人 发表于 2015-4-12 08:20:53

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

若天明 发表于 2015-4-14 18:43:42

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

因胸联盟 发表于 2015-4-21 19:32:02

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
页: [1]
查看完整版本: PHP网站制作之PHP中创立并处置图像