当前位置:首页 > PHP教程 > php图像处理 > 列表

PHP按一定比例压缩图片的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-31 13:52:01 浏览: 评论:0 

图片压缩是我们日常开发中经常使用的操作,在如今需求很多的情况往往,上传的一张图片会被压缩成不同比例的图片,每次去操作也是一件非常繁琐的事情,于是进行了封装了一个压缩图片的操作类,希望大家遇到后,不用再为写很多压缩图片代码烦恼了。

压缩图片的工具类:

  1. <?php 
  2. /** 
  3.  图片压缩操作类 
  4.  v1.0 
  5. */ 
  6.   class Image{ 
  7.     
  8.   private $src
  9.   private $imageinfo
  10.   private $image
  11.   public $percent = 0.1; 
  12.   public function __construct($src){ 
  13.      
  14.    $this->src = $src
  15.      
  16.   } 
  17.   /** 
  18.   打开图片 
  19.   */ 
  20.   public function openImage(){ 
  21.      
  22.    list($width$height$type$attr) = getimagesize($this->src); 
  23.    $this->imageinfo = array
  24.     
  25.   'width'=>$width
  26.   'height'=>$height
  27.   'type'=>image_type_to_extension($type,false), 
  28.   'attr'=>$attr 
  29.    ); 
  30.    $fun = "imagecreatefrom".$this->imageinfo['type']; 
  31.    $this->image = $fun($this->src); 
  32.   } 
  33.   /** 
  34.   操作图片 
  35.   */ 
  36.   public function thumpImage(){ 
  37.      
  38.    $new_width = $this->imageinfo['width'] * $this->percent; 
  39.   $new_height = $this->imageinfo['height'] * $this->percent; 
  40.   $image_thump = imagecreatetruecolor($new_width,$new_height); 
  41.   //将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度 
  42.   imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']); 
  43.   imagedestroy($this->image);  
  44.   $this->image = $image_thump
  45.   } 
  46.   /** 
  47.   输出图片 
  48.   */ 
  49.   public function showImage(){ 
  50.      
  51.    header('Content-Type: image/'.$this->imageinfo['type']); 
  52.   $funcs = "image".$this->imageinfo['type']; 
  53.   $funcs($this->image); 
  54.      
  55.   } 
  56.   /** 
  57.   保存图片到硬盘 
  58.   */ 
  59.   public function saveImage($name){ 
  60.      
  61.    $funcs = "image".$this->imageinfo['type']; 
  62.   $funcs($this->image,$name.'.'.$this->imageinfo['type']); 
  63.      
  64.   } 
  65.   /** 
  66.   销毁图片 
  67.   */ 
  68.   public function __destruct(){ 
  69.      
  70.    imagedestroy($this->image); 
  71.   } 
  72.     
  73.   } 
  74.    
  75.    
  76. ?> 

测试:

  1. <?php 
  2.  require 'image.class.php'
  3.  $src = "001.jpg"
  4.  $image = new Image($src); 
  5.  $image->percent = 0.2; 
  6.  $image->openImage(); 
  7.  $image->thumpImage(); 
  8.  $image->showImage(); 
  9.  $image->saveImage(md5("aa123")); 
  10. ?>

Tags: PHP压缩图片

分享到:

相关文章