这个是输出4个验证码的例子,对于汉字,需要font文件和imagettftext函数,用到的时候大家再网上搜索吧。
实例22图片验证的核心代码
代码如下:
<?php
//header("content-type:image/png");
$num='1234';
$imagewidth=60;
$imageheight=18;
$numimage=imagecreate($imagewidth,$imageheight);
imagecolorallocate($numimage,240,240,240);
for($i=0;$i<strlen($num);$i++){
$x=mt_rand(1,8)+$imagewidth*$i/4;
$y=mt_rand(1,$imageheight/4);
$color=imagecolorallocate($numimage,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));
imagestring($numimage,5,$x,$y,$num[$i],$color);
}
for($i=0;$i<200;$i++){
$randcolor=imagecolorallocate($numimage,rand(200,255),rand(200,255),rand(200,255));
imagesetpixel($numimage,rand()%70,rand()%20,$randcolor);
}
imagepng($numimage);
imagedestroy($numimage);
?>
这个是输出4个验证码的例子,对于汉字,需要font文件和imagettftext函数,用到的时候大家再网上搜索吧。你要产生随机数,那有mt_rand函数;你还要用到session保存这个随机数;如果需要转成utf-8,需要iconv函数。
实例23缩略图
代码如下:
<?php
classSimpleImage{
var$image;
var$image_type;
functionload($filename){
$image_info=getimagesize($filename);
$this->image_type=$image_info[2];
if($this->image_type==IMAGETYPE_JPEG){
$this->image=imagecreatefromjpeg($filename);
}elseif($this->image_type==IMAGETYPE_GIF){
$this->image=imagecreatefromgif($filename);
}elseif($this->image_type==IMAGETYPE_PNG){
$this->image=imagecreatefrompng($filename);
}
}
functionsave($filename,$image_type=IMAGETYPE_JPEG,$compression=75,$permissions=null){
if($image_type==IMAGETYPE_JPEG){
imagejpeg($this->image,$filename,$compression);
}elseif($image_type==IMAGETYPE_GIF){
imagegif($this->image,$filename);
}elseif($image_type==IMAGETYPE_PNG){
imagepng($this->image,$filename);
}
if($permissions!=null){
chmod($filename,$permissions);
}
}
functionoutput($image_type=IMAGETYPE_JPEG){
if($image_type==IMAGETYPE_JPEG){
imagejpeg($this->image);
}elseif($image_type==IMAGETYPE_GIF){
imagegif($this->image);
}elseif($image_type==IMAGETYPE_PNG){
imagepng($this->image);
}
}
functiongetWidth(){
returnimagesx($this->image);
}
functiongetHeight(){
returnimagesy($this->image);
}
functionresizeToHeight($height){
$ratio=$height/$this->getHeight();
$width=$this->getWidth()*$ratio;
$this->resize($width,$height);
}
functionresizeToWidth($width){
$ratio=$width/$this->getWidth();
$height=$this->getheight()*$ratio;
$this->resize($width,$height);
}
functionscale($scale){
$width=$this->getWidth()*$scale/100;
$height=$this->getheight()*$scale/100;
$this->resize($width,$height);
}
functionresize($width,$height){
$new_image=imagecreatetruecolor($width,$height);
imagecopyresampled($new_image,$this->image,0,0,0,0,$width,$height,$this->getWidth(),$this->getHeight());
$this->image=$new_image;
}
}
$newfile=UPLOAD_DIR."/icons/".md5($_SESSION['USER']->email).".jpg";//上传文件保存的目录
$image=newSimpleImage();
$image->load($_FILES['icons']['tmp_name']);//上传的临时文件名
$image->resizeToWidth(80);设置宽度
$image->save($newfile);
?>
更多信息请查看IT技术专栏