我們在運用
PHP生成縮略圖HTML代碼
PHP生成縮略圖PHP代碼
- < ?php
- /*後台登陸界面
- *黃春龍學習編寫
- *首寫時間:2009-10-27
- *更新時間:2009/11/24
- */
- require_once '../xmphp/init.php';
- //全站配置文件
- require_once XMPHP_COMMON.'/smarty.php';
- //smarty功能
- require_once XMPHP_COMMON.'/mysql.php';
- //mysql功能
- require_once XMPHP_COMMON.'/func.php';
- //常用函數
- if(isset($_GET['act'])&&$_GET['act']
=='upload'){- $file=$_FILES['file'];
- $info=pathinfo($file['name']);
- $a=array('jpg','gif','png');
- if(!in_array($info['extension'],$a)){
- alert("請選擇jpg,gif,png格式的圖片
進行上傳");- exit;
- }
- if($file['name'] !=''){
- $dirname=date('Ym');
- $dirname='../upload/'.$dirname;
- //原圖路徑
- $xin=$dirname.'/s';//PHP生成縮略圖路徑
- if(!file_exists($xin)){
- @mkdir($xin);
- }
- $image1=$info['filename'].'120_120'.'.'
.$info['extension'];//縮略圖名稱- $image2=$info['filename'].'300_300'.'.'
.$info['extension'];//縮略圖名稱- list($imagw,$imagh)=getimagesize($file
['tmp_name']);//取得原圖的寬高(另外$file
['tmp_name']只是一個臨時文件路徑,有時可能
會報錯,如報錯只需把臨時文件路徑改成你上傳
後的原圖的路徑即可)- //120圖判斷各種情況來取得縮略圖的寬高
- if($imagw< =120&&$imagh< =120){
- $m120w=$imagw;
- $m120h=$imagh;
- }elseif($imagw>$imagh)
- {
- $m120w=120;
- $m120h=intval($m120w/number_format(
$imagw/$imagh,2));//縮略圖的寬除以(原
圖的寬除以原圖的高)number_format查手冊- }
- else
- {
- $m120h=300;
- $m120w=intval($m120h/number_format(
$imagh/$imagw,2));//縮略圖的高除以(原圖
的高除以原圖的寬)number_format查手冊- }
- //300圖判斷各種情況來取得縮略圖的寬高
- if($imagw< =300&&$imagh< =300){
- $m300w=$imagw;
- $m300h=$imagh;
- }elseif($imagw>$imagh){
- $m300w=300;
- $m300h=intval($m300w/number_format(
$imagw/$imagh,2));//縮略圖的寬除以(原
圖的寬除以原圖的高)number_format查手冊- }else{
- $m300h=300;
- $m300w=intval($m300h/number_format(
$imagh/$imagw,2));//縮略圖的高除以(原
圖的高除以原圖的寬)number_format查手冊- }
- if($info['extension']=='jpg'){
- $info['extension']='jpeg';//判斷圖像類
型如果是JPG的則把它轉換成JPEG的因為圖像處
理函數在處理JPG的時候都是用的JPEG而不是JPG- }
- $iml='imagecreatefrom'.$info['extension'];
- //取得不同圖片格式的不同函數
- $yuan=$iml($file['tmp_name']);
- //根據前面取的不同函數來取的原圖的標識
- $mu1=imagecreatetruecolor($m120w,$m120h);
- //取的要生成的縮略圖的標識
- $mu2=imagecreatetruecolor($m300w,$m300h);
- //取的要生成的縮略圖的標識
- $c='image'.$info['extension'];
- //生成輸出縮略圖的函數,不能分開寫,否則報錯
- imagecopyresampled($mu1,$yuan,0,0,0,
0,$m120w,$m120h,$imagw,$imagh);//生成縮略圖120- $res=$c($mu1,$xin.'/'.$image1);
- //存放縮略圖
- if(!$res){
- alert('生成120縮略圖失敗');
- exit;
- }
- imagecopyresampled($mu2,$yuan,0,0
,0,0,$m300w,$m300h,$imagw,$imagh);- //PHP生成縮略圖生成縮略圖120
- $res=$c($mu2,$xin.'/'.$image2);
- //存放縮略圖
- if($res){
- alert('生成300縮略圖成功');
- exit;
- }
- }
- }
- $tpl->display("tu/tu.html");
- ?>
以上這一大段的代碼示例就是PHP生成縮略圖的相關實現方法。