程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP生成圖片縮略圖

PHP生成圖片縮略圖

編輯:關於PHP編程

       PHP生成圖片縮略圖:

      要使用PHP生成圖片縮略圖,要保證你的PHP服務器安裝了GD2圖形庫

      使用一個類生成圖片的縮略圖,類的源碼見下文

      調用此類的方法:

      resizeimage = new resizeimage("圖片源文件地址", "200", "100", "0","縮略圖地址");

      //就只用上面的一句話,就能生成縮略圖,其中,源文件和縮略圖地址可以相同,200,100分別代表寬和高

      //使用如下類就可以生成圖片縮略圖,

      class resizeimage

      {

      //圖片類型

      var type;

      //實際寬度

      var width;

      //實際高度

      var height;

      //改變後的寬度

      var resize_width;

      //改變後的高度

      var resize_height;

      //是否裁圖

      var cut;

      //源圖象

      var srcimg;

      //目標圖象地址

      var dstimg;

      //臨時創建的圖象

      var im;

      function resizeimage(img, wid, hei,c,dstpath)

      {

      this->srcimg = img;

      this->resize_width = wid;

      this->resize_height = hei;

      this->cut = c;

      //圖片的類型

      this->type = strtolower(substr(strrchr(this->srcimg,"."),1));

      //初始化圖象

      this->initi_img();

      //目標圖象地址

      this -> dst_img(dstpath);

      //--

      this->width = imagesx(this->im);

      this->height = imagesy(this->im);

      //生成圖象

      this->newimg();

      ImageDestroy (this->im);

      }

      function newimg()

      {

      //改變後的圖象的比例

      resize_ratio = (this->resize_width)/(this->resize_height);

      //實際圖象的比例

      ratio = (this->width)/(this->height);

      if((this->cut)=="1")

      //裁圖

      {

      if(ratio>=resize_ratio)

      //高度優先

      {

      newimg = imagecreatetruecolor(this->resize_width,this->resize_height);

      imagecopyresampled(newimg, this->im, 0, 0, 0, 0, this->resize_width,this->resize_height, ((this->height)*resize_ratio), this->height);

      ImageJpeg (newimg,this->dstimg);

      }

      if(ratio

      //寬度優先

      {

      newimg = imagecreatetruecolor(this->resize_width,this->resize_height);

      imagecopyresampled(newimg, this->im, 0, 0, 0, 0, this->resize_width, this->resize_height, this->width, ((this->width)/resize_ratio));

      ImageJpeg (newimg,this->dstimg);

      }

      }

      else

      //不裁圖

      {

      if(ratio>=resize_ratio)

      {

      newimg = imagecreatetruecolor(this->resize_width,(this->resize_width)/ratio);

      imagecopyresampled(newimg, this->im, 0, 0, 0, 0, this->resize_width, (this->resize_width)/ratio, this->width, this->height);

      ImageJpeg (newimg,this->dstimg);

      }

      if(ratio

      {

      newimg = imagecreatetruecolor((this->resize_height)*ratio,this->resize_height);

      imagecopyresampled(newimg, this->im, 0, 0, 0, 0, (this->resize_height)*ratio, this->resize_height, this->width, this->height);

      ImageJpeg (newimg,this->dstimg);

      }

      }

      }

      //初始化圖象

      function initi_img()

      {

      if(this->type=="jpg")

      {

      this->im = imagecreatefromjpeg(this->srcimg);

      }

      if(this->type=="gif")

      {

      this->im = imagecreatefromgif(this->srcimg);

      }

      if(this->type=="png")

      {

      this->im = imagecreatefrompng(this->srcimg);

      }

      }

      //圖象目標地址

      function dst_img(dstpath)

      {

      full_length = strlen(this->srcimg);

      type_length = strlen(this->type);

      name_length = full_length-type_length;

      name = substr(this->srcimg,0,name_length-1);

      this->dstimg = dstpath;

      //echo this->dstimg;

      }

      }

      ?>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved