av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語言

php生成圖片縮略圖的方法

時間:2025-06-06 00:54:11 php語言 我要投稿
  • 相關(guān)推薦

php生成圖片縮略圖的方法

  雖然在HTML中可以通過指定圖片的寬度和高度來隨意縮放圖片,但是這種方法不會減少圖片的像素?cái)?shù)目。圖形文件的尺寸沒有改變,當(dāng)然也不會加快圖片下載的速度了。當(dāng)然也可以手動通過圖形軟件生成圖片的縮略圖,但對于大量的圖片展示來說,這個工作量將十分巨大。為此微縮圖的自動生成程序就被設(shè)計(jì)出來了。

  PHP中提供的imagecopyresized函數(shù)就可以用來生成真正的縮賂圖片。該函數(shù)的標(biāo)推

  語法如下:

  語法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,

  int srcX,int srcY,int dstW,int dstH,int srcW,int srcH);

  返回值:整數(shù)

  函數(shù)種類:圖形處理

  內(nèi)容說明:本函數(shù)可復(fù)制新圖,并重新調(diào)整圖片的大小尺寸。參數(shù)都是目的在前,來源在后。參數(shù)dst im及src_im為圖片的handle。參數(shù)dstX、dstY、srcX、srcY分別為目的及來源的坐標(biāo)。參數(shù)dstW、dstH、srcW、srcH分別為來源及目的的寬及高,欲調(diào)整的新圖的尺寸就在這兒配置。

  下面舉個例子來說明這個函數(shù)的用法,對應(yīng)的程序thumb.php如程序清單12—5所示。

  程序清單12—5 thumb.php

  復(fù)制代碼 代碼如下:

  <?

  // 本函數(shù)從源文件取出圖像,設(shè)定成指定大小,并輸出到目的文件

  // 源文件格式:gif,jpg,png

  // 目的文件格式:gif

  // $srcFile:源文件

  // $dstFile: 目標(biāo)文件

  // $dstW:目標(biāo)圖片寬度

  // $dstH:目標(biāo)文件高度

  function makethumb($srcFile,$dstFile,$dstW,$dstH)

  {

  $data = GetImageSize($srcFile,&$info);

  switch ($data[2])

  {

  case 1:

  $imgsrc = @ImageCreateFromGIF($srcFile);

  break;

  case 2:

  $imgsrc = @ImageCreateFromJPEG($srcFile);

  break;

  case 3:

  $imgsrc = @ImageCreateFromPNG($srcFile);

  break;

  }

  $srcW = ImageSX($imgsrc);

  $srcH = ImageSY($imgsrc);

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

  ImageCopyResized($ni,$imgsrc,0,0,0,0,$dstW,$dstH,$srcW,$srcH);

  Imagegif($ni,$dstFile);

  // 如果需要輸出到瀏覽器,那么將上一句改為 ImageJpeg($ni);

  // 如果需要其他格式的圖片,改動最后一句就可以了

  }

  ?>

  在這個例子中,首先通過getimagesize()函數(shù)獲得源圖片的情況,再用 imagecreatefromgif()、

  imagecreatefromjpeg()或imagecreatefrompng()創(chuàng)建一個源位圖$imgsrc,然后用

  imagecreate()函數(shù)創(chuàng)建一個目標(biāo)位圖,其長、寬各是源位圖的一半。然后調(diào)用imagecopyresized()

  函數(shù),將源位圖縮小后拷貝到目標(biāo)位圖中,最后再用imagegif()函數(shù)生成縮略圖。

  這里所用到的圖形處理函數(shù)就是由安裝的GD庫提供的,現(xiàn)對其分別進(jìn)行說明。首先

  介紹getimagesize()函數(shù),其標(biāo)準(zhǔn)語法如下。

  語法:array getimagesize(string filename,array [imageinfo]);

  返回值:數(shù)組

  函數(shù)種類:圖形處理

  內(nèi)容說明:本函數(shù)可用來取得GIF、JPEG及PNG 3種WWW上圖片的高與寬,不需要安裝GD library就可以便用本函數(shù)。返回的數(shù)組有4個元素,返回?cái)?shù)組的第一個元素(索引值0)是圖片的高度,單位是像素(pixel);第二個元素(索引值1)是圖片的寬度;第三個元素(索引值2)是圖片的文件格式,其值1為GIF格式、2為JPEG/JPG格式、3為PNG格式;

  第四個元素(索引值3)為圖片的高與寬字符串,height=xxx width=yyy。

  通過getimagesize()函數(shù)的應(yīng)用,能輕易獲取圖片的各種信息。下面給大家舉一個獲取圖片寬度、高度、格式、文件大小的信息的例子,來進(jìn)一步領(lǐng)會getimagesize()函數(shù)的使用 技巧。

  程序imginfo如程序清單12—6所示。

  程序清單12-6 imginfo.php

  復(fù)制代碼 代碼如下:

  <?php

  function getImageInfo($img) //$img為圖像文件絕對路徑

  {

  $img_info = getimagesize($img);

  switch ($img_info[2])

  {

  case 1:

  $imgtype = "GIF";

  break;

  case 2:

  $imgtype = "JPG";

  break;

  case 3:

  $imgtype = "PNG";

  break;

  }

  $img_type = $imgtype."圖像";

  $img_size = ceil(filesize($img)/1000)."k"; //獲取文件大小

  $new_img_info = array (

  "width"=>$img_info[0],

  "height"=>$img_info[1],

  "type"=>$img_type,

  "size"=>$img_size

  );

  print " width";

  print $img_info[0];

  print " height";

  print $img_info[1];

  print " format";

  print $img_type;

  print " size";

  print $img_size;

  print $new_img_info;

  }

  $img = "/www/htdocs/images/jf.gif";

  getImageInfo($img);

  ?>

  在程序12-5中要創(chuàng)建一個縮略圖,需要先創(chuàng)建一個用來繪圖的空白的畫布。

  ImageCreate函數(shù)可以做到這一點(diǎn)。它將返回一個圖像的標(biāo)識符,并且需要告訴函數(shù)用像素

  計(jì)算的畫布有多大(x(寬度)與y(高度))。在程序12-5中用到的圖形創(chuàng)建函數(shù)imagecreate()

  的標(biāo)準(zhǔn)語法如下:

  語法:int imagecreate(int x_size,int y_size);

  返回值:整數(shù)

  函數(shù)種類:圖形處理

  內(nèi)容說明:本函數(shù)用來建立一張全空的圖形。參數(shù)x_size、y_size為圖形的尺寸,單位

  為像素(pixel)。

  如果要從已經(jīng)存在的圖片中取出圖片文件代碼,可以用imagecreatefromgif()、

  imagecreatefromjpeg()或imagecreatefrompng(),例如函數(shù)imagecreatefromgif()就是從一個GIF

  格式的圖片文件中取出對應(yīng)的圖片源代碼,其標(biāo)準(zhǔn)語法如下:

  語法:int imagecreatefromgif(string filename);

  返回值:整數(shù)

  函數(shù)種類:圖形處理

  內(nèi)容說明:本函數(shù)用來取出一張GIF格式圖形,通常作為背景或者基本的畫布樣本使

  用。參數(shù)filename可以是本地端的文件,也可以是網(wǎng)絡(luò)的URL地址。返回值為GIF的文件

  代碼,可供其他函數(shù)使用。

  在將源位圖縮小后拷貝到目標(biāo)位圖中時,用到了imagecopyresized()函數(shù),此函數(shù)可以

  復(fù)制新圖并調(diào)整大小,其標(biāo)準(zhǔn)語法如下:

  語法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,int srcX,int srcY,

  int dstW,int dstH,int srcW,int srcH);

  返回值:整數(shù)

  函數(shù)種類:圖形處理

  內(nèi)容說明:本函數(shù)可復(fù)制新圖,并重新調(diào)整圖片的大小尺寸。參數(shù)那是目的在前,來

  源在后。參數(shù)ddst_im及src_im為圖片的handle。參數(shù)dstX、dstY、srcX、srcY分別為目的

  及來源的坐標(biāo)。參數(shù)dstW、dstH、srcW、srcH分別為來源及目的的寬及高,若欲調(diào)整新圖

  的尺寸就在這里配置。

  最后在輸出圖像時用到的imagegif()函數(shù)的標(biāo)準(zhǔn)語法如下:

  語法:int imagegif(int im,string [filename]);

  返問值:整數(shù)

  函數(shù)種類:圖形處理

  內(nèi)容說明:本函數(shù)用來建立一張GIF格式圖形。參數(shù)im為使用ImageCreate()所建立

  的圖片代碼,參數(shù)filename可省略,若無本參數(shù)filename,則會將圖片直接送到瀏覽器端,

  記得在送出圖片之前要先送出使用Content-type:image/gif的標(biāo)頭字符串(header)到瀏覽器

  端,以順利傳輸圖片。若要使用透明背景的GIF圖,也就是GIF89a的格式,需要先使用

  ImageColorTransparent()配置透明背景。本函數(shù)產(chǎn)生的GIF圖,由于有版權(quán)的問題,因此

  在商業(yè)上的使用還要多加考慮。</p

【php生成圖片縮略圖的方法】相關(guān)文章:

php上傳圖片生成縮略圖07-31

PHP生成縮略圖的方法10-13

php生成圖片縮略圖功能示例11-05

PHP生成縮略圖的類的方法07-11

PHP生成圖片縮略圖類示例代碼07-31

php生成縮略圖的兩種方法05-24

php生成圓角圖片的方法技巧07-20

php生成縮略圖的兩種方法(代碼)08-08

php生成高清縮略圖實(shí)例08-12