《PHP编程最快明白》第七讲:php图片验证码与缩略图_.docx
PHP编程最快明白第七讲:php图片验证码与缩略图_ 这个是输出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;$istrlen($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;$i200;$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_info2; 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($_SESSIONUSER-email).".jpg"/上传文件保存的名目 $image=newSimpleImage(); $image-load($_FILESiconstmp_name);/上传的临时文件名 $image-resizeToWidth(80);设置宽度 $image-save($newfile); ? 更多信息请查看IT技术专栏 .