<?php
創(chuàng)新互聯(lián)專注于寧安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供寧安營(yíng)銷型網(wǎng)站建設(shè),寧安網(wǎng)站制作、寧安網(wǎng)頁(yè)設(shè)計(jì)、寧安網(wǎng)站官網(wǎng)定制、小程序開(kāi)發(fā)服務(wù),打造寧安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供寧安網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
// 驗(yàn)證碼類
class p_w_picpath {
protected $im;
protected $img_width;
protected $img_height;
protected $img_type;
// 生成隨機(jī)數(shù)
static public function randStr($n = 4) {
if($n <= 0) {
return '';
}
$str = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ0123456789';
$str = substr(str_shuffle($str),0,$n);
return $str;
}
// 生成驗(yàn)證碼
static public function chkcode($w=60,$h=25) {
// $w 寬, $h 高
$code = self::randStr(4);
// 造畫(huà)布
$im = p_w_picpathcreatetruecolor($w,$h);
$bak = p_w_picpathcreatetruecolor($w,$h);
// 造顏色,灰底+藍(lán)字
$gray = p_w_picpathcolorallocate($im,100,100,100);
$blue = p_w_picpathcolorallocate($im,0,0,255);
$bak_gray = p_w_picpathcolorallocate($bak,100,100,100);
// 填充
p_w_picpathfill($im,0,0,$gray);
p_w_picpathfill($bak,0,0,$bak_gray);
// 寫(xiě)字
p_w_picpathstring($im,5,10,5,$code,$blue);
/*****
把驗(yàn)證碼存儲(chǔ)到session里
*****/
/*****
把驗(yàn)證碼的字符扭曲,供參考,不要求.
$niu = 3;
for($i=0;$i<60;$i++) {
// 按正弦函數(shù)計(jì)算Y軸的波動(dòng)
$y = sin(deg2rad((720/$w) * $i)) * $niu;
p_w_picpathcopy($bak,$im,$i,$y,$i,0,1,$h);
}
*****/
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($bak);
}
static public function make_thumb($ori,$w=200,$h=200) {
// 判斷原圖大小,如果原圖比縮略還小,不必處理.
// 讀出大圖當(dāng)畫(huà)布
$info = self::getinfo($ori);
if($info['func'] === false) {
return false;
}
$createfunc = 'p_w_picpathcreatefrom' . $info['func']; // 分析出讀取大圖所用的函數(shù)名.
$src = $createfunc($ori);
// 創(chuàng)建小畫(huà)布,并把背景做成灰色
$small = p_w_picpathcreatetruecolor($w,$h);
$gray = p_w_picpathcolorallocate($small,100,100,100);
p_w_picpathfill($small,0,0,$gray);
// 復(fù)制大圖到小圖
$scale = min($w/$info['width'], $h/$info['height']); // 以更小的縮小比例為準(zhǔn),才能裝下
// 根據(jù)比例,算最終復(fù)制過(guò)去的塊的大小.
$realw = $info['width'] * $scale;
$realh = $info['height'] * $scale;
// 生成小圖
/*
bool p_w_picpathcopyresampled ( resource $dst_p_w_picpath , resource $src_p_w_picpath , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
*/
// 計(jì)算留白
$lw = round(($w - $realw)/2); // 計(jì)算左側(cè)留的寬度
$lh = round(($h - $realh)/2); // 計(jì)算上部留的高度
p_w_picpathcopyresampled($small,$src,$lw,$lh,0,0,$realw,$realh,$info['width'],$info['height']);
/*
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($small);
*/
// 計(jì)算小圖片的存儲(chǔ)路徑
$thumburl = str_replace('.','_thumb.',$ori);
$p_w_picpathfunc = 'p_w_picpath' . $info['func'];
if($p_w_picpathfunc($small,$thumburl)) {
return str_replace(ROOT,'',$thumburl);
} else {
return false;
}
}
static public function getinfo($ori) {
$arr = getp_w_picpathsize($ori);
// 如果原始圖片分析不出來(lái),直接false
if($arr === false) {
return false;
}
$info = array();
$info['width'] = $arr[0];
$info['height'] = $arr[1];
switch($arr[2]) {
case 1:
$info['func'] = 'gif';
break;
case 2:
$info['func'] = 'jpeg';
break;
case 3:
$info['func'] = 'png';
break;
case 6:
$info['func'] = 'wbmp';
break;
default:
$info['func'] = false;
}
return $info;
}
}
p_w_picpath::chkcode();
?>
網(wǎng)頁(yè)標(biāo)題:微型php框架library/image.class.php
網(wǎng)站URL:http://chinadenli.net/article22/gsgjcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)、網(wǎng)站改版、、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)