您的位置: 主页 > 编程开发 > PHP > 最近刚总结的:PHP基础(三)图形图像

最近刚总结的:PHP基础(三)图形图像
时间:09-10-30 来源:未知 作者:admin 阅览:

图形图像处理:
PHP中,使用GD库来对图像进行操作,其是一个开放的动态创建图像的源代码公开的函数库,目前支持GIF,PNG,JPEG,WBMP和XBM等多种图

像格式,通常用于对图像的处理.
下载地址:"http://www.boutell.com/gd"

在PHP中设定图像的支持:
激活GD库,必须修改php.ini文件,删除文件中extension=php_gd2.dll宣向前的分号.
成功加载GD2函数库后,可通过phpinfo()函数来获取GD2函数库的安装信息,验证是否安装成功.
在地址栏中输入"127.0.0.1/phpinfo.php".

Jpgraph的安装与配置:
下载地址:http://www.aditus.nu/jpgraph/
Jpgraph的配置:使用前应先通过修改jpg-config.inc.php文件中的以下两个属性来完成Jpgraph的配置
1:支持的中文标准字体可以通过修改CHINESE_TTF_FONT的设置来完成.
DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
2:默认图片格式的配置:
根据当前PHP环境中支持的图片格式来设定默认的生成图片的格式.Jpgraph默认图片格式的配置通过修改DEFAULT_GFORMAT的设置来完

成.默认值"auto"表示Jpgraph将依次按照PNG,GIF和JPEG的顺序来检索系统支持的图片格式.
DEFINE("DEFAULT_GFORMAT","auto");
注意:Jpgraph 2.3版本不需要重新进行配置.

应用: 1.图像输出
<?php
$im = imagecreate(200,60)//创建一个画布
$white = imagecolorallocate($im,225,66,159);//设置画布的背景颜色为..色
imagegif($im);//输出图像
?>
2.在图片上添加文字:
<?php
header("content-type:image/jpeg");//定义输出为图像类型
$im = imagecreatefromjpeg("images/photo.jpg");//输入照片
$textcolor = imagecolorallocate($im,56,73,136);//设置字体颜色为..色
$fnt="c:/windows/fonts/simhei.ttf";//定义字体
$motto = chr(0xE9).chr(0x95).chr(0xBF).chr(0xE7).chr(0x99).chr(0xBD).chr(0xE5).chr(0xB1).chr(0xB1).chr(0xE5).chr(0xA4).chr

(0xA9).chr(0xE6).chr(0xB1).chr(0xA0);//定义输出字体串
imageTTFText($im,220,0,480,340,$textcolor,$fnt,$motto);//写TTF文字到图中的具体位置(220,0,480,340)
imagegif($im);//建立GIF图形
imageDestroy($im);//结束图形,释放内存空间
?>
注意:PHP中不能直接输出中文 必须先转化成UTF-8的编码格式
3.应用图像处理技术生成验证码:
<?php
session_start();
header("content-type:image/png");//设置创建图像的格式
$image_width=70;设置图像宽度
$image_height=18;设置图像高度
srand(microtime()*100000);//设置随机数的种子
for($i=0,$i<4,$i++){//循环输出一个4位的随机数
$new_number.=dechex(rand(0,15));
}
$_SESSION[check_checks] = $new_number;//将获取的随机数验证码写入到SESSION变量中
$new_image = imagecreate($image_width,$image_height);//创建一个画布
imagecolorallocate($num_image,255,255,255);//设置画布的颜色
for($i=0;$i<strlen($_SESSION[check_checks]);$i++){//循环读取SESSION变量中的验证码
$font = mt_rand(3,5);//设置随机的字体
$x = mt_rand(1,8)+$image_width*$i/4;//设置随机字符所在位置的X坐标
$y = mt_rand(1,$image_height/4);//设置随机字符所在位置的Y坐标
$color = imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符的颜色
imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color);//水平输出字符
}
imagepng($num_image);//生成PNG格式的图像
imagedestroy($num_image);//释放图像资源
?>
验证:
<?php
session_start();
if($_POST["Submit"]!=""){
$checks=$_POST["checks"];
if($checks==""){
echo "<script>alert('验证码不能为空');window.location.href='index.php';</script>";
}
if($checks==$_SESSION[check_checks]){
echo "<script>alert('用户登录成功');window.location.href='index.php';</script>";
}
else{
echo "<script>alert('你输入的验证码不正确!');window.location.href='index.php';</script>";
}
}
?>
应用柱形图统计图书月销量
<?php
//引入包
include("jpgraph/jpgraph.php");
include("jpgraph/jpgraph_bar.php");
//设置销售量
$datay=array(160,180,202,289,200,156,411,215,236,351,321,165);
//创建画布
$graph = new Graph(600,300,"auto");
//设置刻度样式
$graph->SetScale("textlin");
$graph->yaxis->scale->SetGrace(20);
//创建画布阴影
$graph->SetShadow();
//设置显示区左右上下距边线的距离,单位为像素.
$graph->img->SetMargin(40,30,30,40);
//创建一个矩形的对象
$bplot = new BarPlot($datay);
//设置柱形图的颜色
$bplot->SetFillColor("orange");
//设置显示数字
$bplot->value->Show();
//在柱形图中显示格式化的图书销量("SetFormat"格式化;"%d"指定的格式)
$bplot->value->SetFormat("%d");
//将柱形图添加到图像中
$graph->Add($bplot);
//设置画布背景色
$graph->SetMarginColor("lightblue");
//创见标题
$graph->title->Set("销量统计");


PHP相关
关于<< 最近刚总结的:PHP基础(三)图形图像 >>的评论 查看所有评论