PHP生成圖片縮略圖_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:在PHP中進行身份認證
      ? if(!isset(PHP_AUTH_USER)) { Header(WWW-Authenticate: Basic realm=請輸入你的用戶名和密碼:); Header(HTTP/1.0 401 Unauthorized); echo 驗證失敗,你不能網絡資源!; exit; } else { if (PHP_AUTH_USER!=username or PHP_AUTH_PW!=password)

      要使用PHP生成圖片縮略圖,要保證你的PHP服務器安裝了GD2圖形庫
      使用一個類生成圖片的縮略圖,類的源碼見下文


      調用此類的方法:
      resizeimage = new resizeimage("圖片源文件地址", "200", "100", "0","縮略圖地址");
      //就只用上面的一句話,就能生成縮略圖,其中,源文件和縮略圖地址可以相同,200,100分別代表寬和高


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

      <?php
      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<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->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<resize_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;
      }
      }
      ?>

       

      分享:很有用的文件操作php函數
      文件讀取函式 //文件讀取函式 function PHP_Read(file_name) { fd=fopen(file_name,r); while(bufline=fgets(fd, 4096)){ buf.=bufline; } fclose(fd); return buf; } ? 文件寫入函式 //文件寫入函式 function PHP_Write(file_name,data,method=w) { filenu

      來源:模板無憂//所屬分類:PHP教程/更新時間:2010-04-04
      相關PHP教程