PHP實現上傳文件生成小圖加文字的實例
文章發佈於 : 2007-06-06 15:36:59 | 文章分類 : 程式相關
標籤 :
程式相關
<?php
//自動縮圖$srcFile原文件,大圖;$photo_small目標文件,小圖;$dstW,$dstH是小圖的寬,高。
function makethumb($srcFile,$photo_small,$dstW,$dstH) {
$data = GetImageSize($srcFile);
switch ($data[2]) {
case 1: //圖片類型,1是GIF圖
$im = @ImageCreateFromGIF($srcFile);
break;
case 2: //圖片類型,2是JPG圖
$im = @imagecreatefromjpeg($srcFile);
break;
case 3: //圖片類型,3是PNG圖
$im = @ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($im);//原始圖片的寬度,也可以使用$data[0]
$srcH=ImageSY($im);//原始圖片的高度,也可以使用$data[1]
$srcX=0;//來源圖的坐標x,y
$srcY=0;
if(($srcW/$dstW)>($srcH/$dstH)){//得出要生成圖片的長寬
$dstW2=$dstW;//輸出圖片的寬度、高度
$dstH2=$srcH*$dstW/$srcW;
$dstX=0;//輸出圖形的坐標x,y
$dstY=($dstH-$dstH2)/2;
}else{
$dstH2=$dstH;//輸出圖片的寬度、高度
$dstW2=$srcW*$dstW/$srcH;
$dstX=($dstW-$dstW2)/2;//輸出圖形的坐標x,y
$dstY=0;
}
$ni=imagecreatetruecolor($dstW,$dstH);//ImageCreate($dstW,$dstH);畫出空白花布的大小
$colorBody=imagecolorallocate($ni,235,234,233);//定義背景顏色
imagefill($ni,0,0,$colorBody);//填充背景顏色
ImageCopyResized($ni,$im,$dstX,$dstY,$srcX,$srcY,$dstW2,$dstH2,$srcW,$srcH);
ImageJpeg($ni,$photo_small);
//ImageJpeg($ni); //在顯示圖片時用,把注釋取消,可以直接在頁面顯示出圖片。
}
//生成帶有版權信息的圖片
function makeCopyright($srcFile,$dstFile,$dstW,$dstH){
$data = GetImageSize($srcFile);
switch ($data[2]) {
case 1: //圖片類型,1是GIF圖
$srcImg = @ImageCreateFromGIF($srcFile);
break;
case 2: //圖片類型,2是JPG圖
$srcImg = @imagecreatefromjpeg($srcFile);
break;
case 3: //圖片類型,3是PNG圖
$srcImg = @ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($srcImg);//原始圖片的寬度,也可以使用$data[0]
$srcH=ImageSY($srcImg);//原始圖片的高度,也可以使用$data[1]
if(($srcW/$dstW)>($srcH/$dstH)){//得出要生成圖片的長寬
$dstW2=$dstW;//輸出圖片的寬度、高度
$dstH2=$srcH*$dstW/$srcW;
}else{
$dstH2=$dstH;//輸出圖片的寬度、高度
$dstW2=$srcW*$dstW/$srcH;
}
$dstimg=imagecreatetruecolor($dstW2,$dstH2);//畫出空白花布的大小
ImageCopyResized($dstimg,$srcImg,0,0,0,0,$dstW2,$dstH2,$srcW,$srcH);
//定義要寫入的文字
$word="http://www.webjx.com";//文字
$font=5;//字體
$wordColor=imagecolorallocate($dstimg,0x08,0x00,0x00);//顏色
$wordX=$dstW2-200;//x坐標
$wordY=$dstH2-20;//y坐標
imagestring($dstimg,$font,$wordX,$wordY,$word,$wordColor);//寫入文字
ImageJpeg($dstimg,$dstFile);
//ImageJpeg($ni); //在顯示圖片時用,把注釋取消,可以直接在頁面顯示出圖片。
}
//調用
$srcFile=$pimg_name;//取得文件擴展名:
$type=substr(strrchr($pimg_name,"."),1);
$photo_ID=date("YmdHis");
$dst_small=$photo_ID."_s.".$type; //小圖
$dst_big=$photo_ID."_b.".$type; //大圖
makethumb($pimg,"../cpzs/".$dst_small,120,90);//120,90為小圖寬,高
makeCopyright($pimg,"../cpzs/".$dst_big,600,480);
(copy($pimg,"../cpzs/".$dst_big)) ? echo "文件上傳成功<br>" : echo "文件上傳失敗<br>";
?>
Love is waiting so you don't have to. Join Date.com for free!
Join Asia FriendFinder the Largest Asian Dating Site on the Web for FREE!
Kaspersky Security for Internet Gateway 7.0
Know when to sell on eBay using research
