萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php生成圖片縮略圖功能示例

php生成圖片縮略圖功能示例

小編給大家推薦的這篇文章介紹了php生成圖片縮略圖功能示例,非常實用,有興趣的同學快看看吧

本文實例講述了php生成圖片縮略圖功能。分享給大家供大家參考,具體如下:

完整代碼如下:

 

 代碼如下 復制代碼

<?php

/*

 * Created on 2011-3-18

 *

 * To change the template for this generated file go to

 * Window - Preferences - PHPeclipse - PHP - Code Templates

*/

/*構造函數-生成縮略圖+水印,參數說明:

$srcFile-圖片文件名,

$dstFile-另存文件名,

$markwords-水印文字,

$markimage-水印圖片,

$dstW-圖片保存寬度,

$dstH-圖片保存高度,

$rate-圖片保存品質*/

makethumb("1.jpg","aa/b.jpg","50","50");

functionmakethumb($srcFile,$dstFile,$dstW,$dstH,$rate= 100,$markwords= null,$markimage= null) {

  $data=GetImageSize($srcFile);

  switch($data[2]) {

    case1:

      $im= @ImageCreateFromGIF($srcFile);

    break;

    case2:

      $im= @ImageCreateFromJPEG($srcFile);

    break;

    case3:

      $im= @ImageCreateFromPNG($srcFile);

    break;

  }

  if(!$im)returnFalse;

  $srcW= ImageSX($im);

  $srcH= ImageSY($im);

  $dstX= 0;

  $dstY= 0;

  if($srcW*$dstH>$srcH*$dstW) {

    $fdstH=round($srcH*$dstW/$srcW);

    $dstY=floor(($dstH-$fdstH) / 2);

    $fdstW=$dstW;

  }else{

    $fdstW=round($srcW*$dstH/$srcH);

    $dstX=floor(($dstW-$fdstW) / 2);

    $fdstH=$dstH;

  }

  $ni= ImageCreateTrueColor($dstW,$dstH);

  $dstX= ($dstX< 0) ? 0 :$dstX;

  $dstY= ($dstX< 0) ? 0 :$dstY;

  $dstX= ($dstX> ($dstW/ 2)) ?floor($dstW/ 2) :$dstX;

  $dstY= ($dstY> ($dstH/ 2)) ?floor($dstH/ s) :$dstY;

  $white= ImageColorAllocate($ni, 255, 255, 255);

  $black= ImageColorAllocate($ni, 0, 0, 0);

  imagefilledrectangle($ni, 0, 0,$dstW,$dstH,$white);// 填充背景色

  ImageCopyResized($ni,$im,$dstX,$dstY, 0, 0,$fdstW,$fdstH,$srcW,$srcH);

  if($markwords!= null) {

    $markwords= iconv("gb2312","UTF-8",$markwords);

    //轉換文字編碼

    ImageTTFText($ni, 20, 30, 450, 560,$black,"simhei.ttf",$markwords);//寫入文字水印

    //參數依次為,文字大小|偏轉度|橫坐標|縱坐標|文字顏色|文字類型|文字內容

     

  }elseif($markimage!= null) {

    $wimage_data=GetImageSize($markimage);

    switch($wimage_data[2]) {

      case1:

        $wimage= @ImageCreateFromGIF($markimage);

      break;

      case2:

        $wimage= @ImageCreateFromJPEG($markimage);

      break;

      case3:

        $wimage= @ImageCreateFromPNG($markimage);

      break;

    }

    imagecopy($ni,$wimage, 500, 560, 0, 0, 88, 31);//寫入圖片水印,水印圖片大小默認為88*31

    imagedestroy($wimage);

  }

  ImageJpeg($ni,$dstFile,$rate);

  ImageJpeg($ni,$srcFile,$rate);

  imagedestroy($im);

  imagedestroy($ni);

}

?>

 

copyright © 萬盛學電腦網 all rights reserved