《PHP編程最快明白》第七講:php圖片驗證碼與縮略圖
來源:易賢網(wǎng) 閱讀:900 次 日期:2014-05-18 15:04:48
溫馨提示:易賢網(wǎng)小編為您整理了“《PHP編程最快明白》第七講:php圖片驗證碼與縮略圖”,方便廣大網(wǎng)友查閱!

這個是輸出4個驗證碼的例子,對于漢字,需要font文件和imagettftext函數(shù),用到的時候大家再網(wǎng)上搜索吧。

實例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函數(shù),用到的時候大家再網(wǎng)上搜索吧。你要產(chǎn)生隨機數(shù),那有mt_rand函數(shù);你還要用到session保存這個隨機數(shù);如果需要轉成utf-8,需要iconv函數(shù)。

實例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技術專欄

更多信息請查看網(wǎng)絡編程
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)