国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php生成驗證碼,縮略圖及水印圖的類分享

2024-05-04 23:44:51
字體:
來源:轉載
供稿:網友
這篇文章主要給大家分享的是php生成驗證碼,縮略圖,及水印圖的類,十分的實用,有需要的小伙伴可以參考下
 

封裝了一個類,可生成驗證碼,縮略圖,及水印圖,分享給大家

<?phpclass image{  session_start();  //驗證碼類  static public function verify($code,$width=75,$height=25,$n=4){    header("content-type:image/png");    // 創建畫布    $img=imagecreatetruecolor($width,$height);    // 設置背景色    $bgcolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255));    // 將背景色填充    imagefill($img,0,0,$bgcolor);    // 繪制五條弧線    for($i=0;$i<5;$i++){      $arccolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255));      imagearc($img,mt_rand(5,($width-5)),mt_rand(5,($height-5)),mt_rand(5,($width-5)),mt_rand(5,($height-5)),mt_rand(0,360),mt_rand(0,360),$arccolor);    }    // 繪制一百個點    for($i=0;$i<100;$i++){      $pixelcolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255));      imagesetpixel($img,mt_rand(1,($width-1)),mt_rand(1,($height-1)),$pixelcolor);    }    // 繪制五條線段    for($i=0;$i<5;$i++){      $linecolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255));      imageline($img,mt_rand(1,($width-1)),mt_rand(1,($height-1)),mt_rand(1,($width-1)),mt_rand(1,($height-1)),$linecolor);    }    // 設置邊框顏色    $bdcolor=imagecolorallocate($img,mt_rand(150,200),mt_rand(150,200),rand(150,200));    // 繪制一個矩形無填充邊框    imagerectangle($img,0,0,($width-1),($height-1),$bdcolor);    // 設置驗證碼字符串    $str='';    for($i=1;$i<=$n;$i++){      $str.=substr(str_shuffle($code),0,1);    }    $_SESSION['a']=$str;    //    for($i=0;$i<$n;$i++){      $textcolor=imagecolorallocate($img,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));      imagettftext($img,1/($n+1)*$width,mt_rand(-20,20),((1-$n/(5+$n))*$width/($n-1)+$i*1/($n+1)*$width),1/2*($height+3/5*$height),$textcolor,'1.ttf',substr($str,$i,1));    }    // 打印圖像    imagepng($img);    // 釋放資源    imagedestroy($img);    return $str;  }  //縮略圖類  /*  *$source需要縮略的圖片  */  static public function thumbnail($source,$deletesource=false,$width=180){    $info=getimagesize($source);    //getimagesize方法獲得圖像的詳細信息    $createFun=str_replace('/','createfrom',$info['mime']);    //將getimagesize中的['mime']中的/替換,變為imagecreatefromjpeg方法    $src=$createFun($source);    //創建圖像    $dst_w=$width;    //縮略圖的寬    $dst_h=$width/$info[0]*$info[1];    //計算縮略圖的高    $dst=imagecreatetruecolor($dst_w,$dst_h);    //新建一個真彩色圖像    imagecopyresampled($dst,$src,0,0,0,0,$dst_w,$dst_h,$info['0'],$info['1']);    //重采樣拷貝部分圖像并調整大小    $saveFun=str_replace('/','',$info['mime']);    //設置保存函數    $ext=strrchr($source,'.');    //strrchr查找指定字符在字符串中的最后一次出現,返回包括其自身在內的剩余的字符串    $thumbnailName=str_replace($ext,'',$source).'_thumbnail'.$ext;    //設置保存路徑    if(!$deletesource){      $saveFun($dst,$thumbnailName);      //保存圖像    }else{      $saveFun($dst,$thumbnailName);      unlink($source);      //刪除原圖    }    imagedestroy($src);    //銷毀資源    imagedestroy($dst);    //銷毀資源    return $thumbnailName;   }  //水印圖類  /*  *$srcing水印圖  *$dsting原圖  */  static public function watermark($dstimg,$srcimg){    $dstinfo=getimagesize($dstimg);    //getimagesize方法獲取該圖片的詳細信息(該方法返回的是一個詳細的數組)    $srcinfo=getimagesize($srcimg);    $createdst=str_replace('/','createfrom',$dstinfo['mime']);    //將getimagesize方法返回的數組中的mime值中的/替換,結果為imagecreatefromjpeg    $createsrc=str_replace('/','createfrom',$srcinfo['mime']);    $dst=$createdst($dstimg);    //替換后為imagecreatefromjpeg函數,創建一個圖像    $dst_w=imagesx($dst);    //獲取大圖的寬    $dst_h=imagesy($dst);    //獲取大圖的高    $src=$createsrc($srcimg);    //替換后為imagecreatefromjpeg函數,創建一個圖像    $src_w=imagesx($src);    //獲取水印圖的寬    $src_h=imagesy($src);    //獲取水印圖的高    $watermaker=imagecopy($dst,$src,($dst_w-$src_w),($dst_h-$src_h),0,0,$src_w,$src_h);    //將水印圖復制在大圖上    $saveFun=str_replace('/','',$dstinfo['mime']);    //將getimagesize返回數組中的['mime']中的斜杠替換為空,替換后的值為imagejpeg,即為保存函數    $ext=strrchr($dstimg,'.');    //strrchr查找指定字符在字符串中的最后一次出現,返回包括其自身在內的剩余的字符串    $watermaker=str_replace($ext,'',$dstimg).'_water'.time().$ext;    //保存名    $saveFun($dst,$watermaker);    //保存圖片,第一個參數為要保存的圖片,第二個參數為保存路徑或保存名    imagedestroy($dst);    //銷毀資源    imagedestroy($src);    //銷毀資源    return $watermaker;   } }?>
 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 扶风县| 容城县| 聊城市| 松滋市| 蚌埠市| 吉安市| 桐庐县| 杂多县| 嵊泗县| 华宁县| 那曲县| 新巴尔虎左旗| 正阳县| 新建县| 巴林右旗| 永丰县| 乌兰察布市| 泸州市| 若羌县| 家居| 七台河市| 泰州市| 秭归县| 庆阳市| 开封市| 会宁县| 穆棱市| 防城港市| 保定市| 昭通市| 宕昌县| 贵州省| 韶山市| 泰兴市| 恭城| 巴塘县| 无极县| 远安县| 西峡县| 关岭| 灵台县|