萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 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;

  }

  }

  ?>

copyright © 萬盛學電腦網 all rights reserved