VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • 基于GD2图形库的PHP生成图片缩略图类代码分享

这篇文章主要介绍了基于GD2图形库的PHP生成图片缩略图类代码分享,本文直接给出实现代码和使用方法,需要的朋友可以参考下

要使用PHP生成图片缩略图,要保证你的PHP服务器安装了GD2图形库 使用一个类生成图片的缩略图

1.使用方法

$resizeimage = new resizeimage("图片源文件地址", "200", "100", "0","缩略图地址");

就只用上面的一句话,就能生成缩略图,其中,源文件和缩略图地址可以相同,200,100分别代表宽和高

2. 缩略图类代码

  1. //使用如下类就可以生成图片缩略图, 
  2.    
  3. <?php 
  4. class resizeimage 
  5.   //图片类型 
  6.   var $type
  7.   //实际宽度 
  8.   var $width
  9.   //实际高度 
  10.   var $height
  11.   //改变后的宽度 
  12.   var $resize_width
  13.   //改变后的高度 
  14.   var $resize_height
  15.   //是否裁图 
  16.   var $cut
  17.   //源图象 
  18.   var $srcimg
  19.   //目标图象地址 
  20.   var $dstimg
  21.   //临时创建的图象 
  22.   var $im
  23.    
  24.   function resizeimage($img$wid$hei,$c,$dstpath
  25.   { 
  26.     $this->srcimg = $img
  27.     $this->resize_width = $wid
  28.     $this->resize_height = $hei
  29.     $this->cut = $c
  30.     //图片的类型 
  31.     
  32. $this->type = strtolower(substr(strrchr($this->srcimg,"."),1)); 
  33.    
  34.     //初始化图象 
  35.     $this->initi_img(); 
  36.     //目标图象地址 
  37.     $this -> dst_img($dstpath); 
  38.     //-- 
  39.     $this->width = imagesx($this->im); 
  40.     $this->height = imagesy($this->im); 
  41.     //生成图象 
  42.     $this->newimg(); 
  43.     ImageDestroy ($this->im); 
  44.   } 
  45.   function newimg() 
  46.   { 
  47.     //改变后的图象的比例 
  48.     $resize_ratio = ($this->resize_width)/($this->resize_height); 
  49.     //实际图象的比例 
  50.     $ratio = ($this->width)/($this->height); 
  51.     if(($this->cut)=="1"
  52.     //裁图 
  53.     { 
  54.       if($ratio>=$resize_ratio
  55.       //高度优先 
  56.       { 
  57.         $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height); 
  58.         imagecopyresampled($newimg$this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height); 
  59.         ImageJpeg ($newimg,$this->dstimg); 
  60.       } 
  61.       if($ratio<$resize_ratio
  62.       //宽度优先 
  63.       { 
  64.         $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height); 
  65.         imagecopyresampled($newimg$this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio)); 
  66.         ImageJpeg ($newimg,$this->dstimg); 
  67.       } 
  68.     } 
  69.     else 
  70.     //不裁图 
  71.     { 
  72.       if($ratio>=$resize_ratio
  73.       { 
  74.         $newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio); 
  75.         imagecopyresampled($newimg$this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio$this->width, $this->height); 
  76.         ImageJpeg ($newimg,$this->dstimg); 
  77.       } 
  78.       if($ratio<$resize_ratio
  79.       { 
  80.         $newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height); 
  81.         imagecopyresampled($newimg$this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio$this->resize_height, $this->width, $this->height); 
  82.         ImageJpeg ($newimg,$this->dstimg); 
  83.       } 
  84.     } 
  85.   } 
  86.   //初始化图象 
  87.   function initi_img() 
  88.   { 
  89.     if($this->type=="jpg"
  90.     { 
  91.       $this->im = imagecreatefromjpeg($this->srcimg); 
  92.     } 
  93.     if($this->type=="gif"
  94.     { 
  95.       $this->im = imagecreatefromgif($this->srcimg); 
  96.     } 
  97.     if($this->type=="png"
  98.     { 
  99.       $this->im = imagecreatefrompng($this->srcimg); 
  100.     } 
  101.   } 
  102.   //图象目标地址 
  103.   function dst_img($dstpath
  104.   { 
  105.     $full_length = strlen($this->srcimg); 
  106.    
  107.     $type_length = strlen($this->type); 
  108.     $name_length = $full_length-$type_length
  109.    
  110.    
  111.     $name     = substr($this->srcimg,0,$name_length-1); 
  112.     $this->dstimg = $dstpath
  113.    
  114.    
  115. //echo $this->dstimg; 
  116.   } 
  117. ?>
  118.  



原文链接:http://www.phpfensi.com/php/20210510/15199.html


相关教程