仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2978|回复: 18

[学习教程] PHP网页设计PHP若何生成静态图像?

[复制链接]
金色的骷髅 该用户已被删除
发表于 2015-2-4 00:08:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怎么配置呢 ,问最好的老实百度,问啥都有答案。所以用好搜索引擎是学好的令1个关键,程序会出各样的问题,没有1个人可能会碰到所有的问题,所有就可以问百度这个大家精华的集合了。   综述:PHP中有一组图象函数,可以静态生成gif格局的图象数据流并输入到办事器,如许咱们就能够依照用户的需求实时地在线生成图象。上面咱们以生成一个按钮为例子来谈一谈若何用PHP生成静态图象。   静态图象是如何被生成的?
  让咱们先看看上面的代码,假如第一次阅读该页或用户置表单为空,则默许值为"Go!";假如用户输出了信息并提交表单,这段代码将被从头挪用且停止初始化。
<?
If (!isset($string)||$string==""){$string="Go!";}
?>
<form action=button.php>
Button text;
<input type=text name=string value="<? pint $string; ?>">
<input type=submit>
</form>
这个文件的其他的局部就是复杂的在表格中输入一些元素和挪用其他的文件。
  如今,咱们入手下手制造按钮。第一个例子是生成一个黑边儿绿底儿的椭圆文字按钮。咱们经由过程一个尺度的<IMG>标签儿来显示按钮图像;SRC的值是生成按钮图像的文件。
<img src="green_ellipse.php?string=<? print rawurlencode($string); ?>">  
上面让咱们看看生成椭圆的文件"green_ellipse.php"
  生成椭圆
  这里列出了green_ellipse.php的代码,咱们以Header()开首,可以向Apache办事器发从一个HTTP的头信息,这一步告知Server利用的甚么数据,本例中咱们利用的是GIF的格局:
<?
Header("Content-Type: image/gif");
//如今咱们将生成一幅空的图像,而且将其赋值给变量$id:
$id=ImageCreate($img_width,$img_height);
//图象润饰
……
//利用内嵌的五号字在按钮上写上文字,最初给按钮上的文字设置变量$black的色彩:
ImageString($id, 5,($img_center_x-($str_width/2+1), img_center_y-($str_height/2)), $string, $black);
//最初,把图像从内存中道出到尺度输入缓冲--这是Server将失掉的图像的内容:
ImageGIF($id);
?>  
这个法式只合适像"Go!"如许短的按钮,像"Please click here!"如许的长字符串就会欠好看。不妨,看看上面这个圆边矩形。
  生成更雅观的图样
  这个例子将生成一个黑边儿,黄色棱角的图样。你可以看到这类办法比第一个例子更合适长字符串的按钮。
  假如你看了后面的代码,这里的代码你就轻易看懂了。咱们将从生成按钮的外形入手下手。
  在每个字符串的开头处创立20个象素的边沿,并在字符串的高低各建10个象素的边沿:
<?php
初始化,参数设定
……
在图像的左端画了一个半圆,再从六点经由过程九点画到12点:
ImageArc($id,20,$img_center_y,20,$str_height+20,90,270,$black);
关于右端,是同下面一样的,只是从右端20象素入手下手画起,而且擦过相反的半圈儿--从12点经由过程3点到六点:
ImageArc($id,($img_width-20),$img_center_y,20,$img_height+20,270,90,$black);
最初,从一真个端顶向另外一端画一条直线,一样在底部也画一条直线。如许闭合了外形的外部。
ImageLine($id,20,0,($img_width-20),0,$black);
ImageLine($id,20,$img_height-1,($img_width-20),$img_height-1,$black);
在这个区域里填充变量$yellow所界说的色彩,并充斥全部区域:
ImageFillToBorder($id,$img_center_x,$img_center_y,$black,$yellow);
再将字符串写入到图像中,以后向尺度输入打印图像:
ImageString($id, 5, ($img_center_x-($str_width/2)+1,($img_center_y-($str_height/2)), $string, $black);
ImageGIF($id);
?>  
  若何修正一幅已存在的图像?
  在这里,咱们将修正一幅已存在的图像,将其存为一幅新的图像文件,同时显示一幅静态的图像。起首,咱们把mymonkdy.gif调入内存,并将其赋值给$id。
<?
$id=ImageCreateFromGif("mymonkey.gif");
//如今咱们设置字体色彩,并将它放到图像上。
$yellow=ImageColorAllocate($id,,255,255,0);
//以左上角为(0,0)点,从(10,20)中央入手下手用内嵌四号字体写上字符串,同时我将它设为大写,并加了感慨号,以使其显得加倍活泼。
ImageString($id,4,10,20,strtoupper($string."!"),$yellow);
//如今咱们将图像从内存存入文件http://edu.cnzz.cn/NewsInfo/newmonkey.gif。
ImageGIF($id,"http://edu.cnzz.cn/NewsInfo/newmonkey.gif");
?>
如许就差不多了:http://edu.cnzz.cn/NewsInfo/newmonkey.gif可以用来显示了,阅读器的设置是如许的:
<td>
<img src="http://edu.cnzz.cn/NewsInfo/newmonkey.gif" border=0>
</td>
</tr>
</table>
  若何在PHP没有GD撑持的情形下做统计数据的图形显示?
使用HTML对图形的掌握完整可以到达咱们的需求,入手下手之前先让咱们回忆一下HTML对图形掌握的语法:
  < IMG SRC=# ALT=# Width=# Height=# ...... >
  咱们需求作的就是对Width和Height两个参数的掌握,上面咱们给个例子:
  <?php
  $rows[]={12,45,43,23,32,87,14,22,19,40}; //数组初始化,可以从数据掏出。
  $sums=0;
  for ( $i = 0 ; $i < 10 ;$i++ ) $sums+=$rows[$i]; //乞降
  for ( $i = 0 ; $i < 10 ;$i++ ) {
    if ($sums * $rows[$i] ) { //为0则不停止处置,防止0除溢出
      $tmp=$rows[$i]/$sums*100;
      echo " <img src=http://edu.cnzz.cn/NewsInfo/bar.gif height=9 width=".$tmp.">";
      //输入图形,http://edu.cnzz.cn/NewsInfo/bar.gif是只要一个点的图形文件,这里是横向图形,纵向改height便可.
      echo " (".sprintf('%01.2f',$tmp)."%)";
      echo "<BR>";
    }
  }
?>  
  如何完成PHP和Flash动画的交互操作?
咱们用一个flash加上php做身份认证的例子申明一下:
起首在主场景中到场三个textfield和一个按钮。
然后就是给这三个textfield付上称号。
第一个是 name,用来输出用户名
第二个是 password,用来输出暗码
第三个是output,用来显示判别了局。
最初就是给按钮的点击加上举措。
Load Variables ("check.php", 1, vars=POST)  
这个action的内容良多,第一是把主场景的几个变量值传给check.php.第二还要从check.php中再前往output的值来。
<?
.....
....
///用sql 语句,找出$name的暗码赋给 password
//判别第二个文本框的内容,暗码是不是第一个文本文本框name找到的暗码
if($passwd==$password)
echo "output=welcome ".$name." this is a program by php and flash"; //假如等于的话,就将output文本框的值等于接待信息
else
echo "output=sorry , ".$name." your password is not correct"; //假如不等于,就显示失足信息。
?>  
要想从事软件开发工作,那么,还有很多的知识要学习,其实,不管是以后想去从事哪个工作,都需要自己去利用空闲的时间去不断的学习新的知识,不断的充实自己。
海妖 该用户已被删除
发表于 2015-2-4 09:20:23 | 显示全部楼层
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
透明 该用户已被删除
发表于 2015-2-9 21:11:12 | 显示全部楼层
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
兰色精灵 该用户已被删除
发表于 2015-2-27 21:29:58 | 显示全部楼层
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
admin 该用户已被删除
发表于 2015-3-15 02:03:16 | 显示全部楼层
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
再见西城 该用户已被删除
发表于 2015-3-21 15:58:55 | 显示全部楼层
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
深爱那片海 该用户已被删除
发表于 2015-3-22 02:09:20 | 显示全部楼层
写的比较杂,因为我也是个新手,不当至于大家多多指正。
只想知道 该用户已被删除
发表于 2015-4-13 02:52:47 | 显示全部楼层
基础有没有对学习php没有太大区别,关键是兴趣。
飘飘悠悠 该用户已被删除
发表于 2015-4-21 04:20:20 | 显示全部楼层
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
柔情似水 该用户已被删除
发表于 2015-4-28 15:08:45 | 显示全部楼层
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
再现理想 该用户已被删除
发表于 2015-6-21 21:47:43 | 显示全部楼层
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
第二个灵魂 该用户已被删除
发表于 2015-7-3 16:54:28 | 显示全部楼层
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
冷月葬花魂 该用户已被删除
发表于 2015-7-14 06:01:14 | 显示全部楼层
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
蒙在股里 该用户已被删除
发表于 2015-7-22 20:59:25 | 显示全部楼层
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
莫相离 该用户已被删除
发表于 2015-10-1 09:45:40 | 显示全部楼层
写的比较杂,因为我也是个新手,不当至于大家多多指正。
谁可相欹 该用户已被删除
发表于 2015-10-6 14:42:47 | 显示全部楼层
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
若相依 该用户已被删除
发表于 2015-10-12 04:03:37 | 显示全部楼层
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
乐观 该用户已被删除
发表于 2015-10-31 21:22:44 | 显示全部楼层
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
灵魂腐蚀 该用户已被删除
发表于 2015-11-10 20:38:03 | 显示全部楼层
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-3-29 06:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表