手机
当前位置:查字典教程网 >编程开发 >php教程 >《PHP编程最快明白》第七讲:php图片验证码与缩略图
《PHP编程最快明白》第七讲:php图片验证码与缩略图
摘要:实例22图片验证的核心代码复制代码代码如下:这个是输出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

class SimpleImage {

var $image;

var $image_type;

function load($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);

}

}

function save($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);

}

}

function output($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);

}

}

function getWidth() {

return imagesx($this->image);

}

function getHeight() {

return imagesy($this->image);

}

function resizeToHeight($height) {

$ratio = $height / $this->getHeight();

$width = $this->getWidth() * $ratio;

$this->resize($width,$height);

}

function resizeToWidth($width) {

$ratio = $width / $this->getWidth();

$height = $this->getheight() * $ratio;

$this->resize($width,$height);

}

function scale($scale) {

$width = $this->getWidth() * $scale/100;

$height = $this->getheight() * $scale/100;

$this->resize($width,$height);

}

function resize($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 = new SimpleImage();

$image->load($_FILES['icons']['tmp_name']);//上传的临时文件名

$image->resizeToWidth(80);设置宽度

$image->save($newfile);

?>

【《PHP编程最快明白》第七讲:php图片验证码与缩略图】相关文章:

开发大型PHP项目的方法

新版PHP将向Java靠拢

PHPShop存在多个安全漏洞

PHP的Socket通信之UDP通信实例

php生成图片验证码

微信公众平台开发实现2048游戏的方法

PHP编程网上资源导航

聊天室php&mysql(一)

用PHP实现验证码功能

php生成图片缩略图的方法

精品推荐
分类导航