PHP產生圖片縮圖_PHP教程

來源:互聯網
上載者:User
  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;

  }

  }

  ?>

http://www.bkjia.com/PHPjc/815031.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/815031.htmlTechArticlePHP產生圖片縮圖: 要使用PHP產生圖片縮圖,要保證你的PHP伺服器安裝了GD2圖形庫 使用一個類產生圖片的縮圖,類的源碼見下文 調用此...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.