PHP實現上傳檔案產生小圖加文字的執行個體

來源:互聯網
上載者:User

<?
//自動縮圖$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);
 //if(copy($pimg,"../cpzs/".$dst_big))
    //     echo "檔案上傳成功<br>";
    //else
    //    echo "檔案上傳失敗<br>";
?>



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.