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

php生成缩略图经典类

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-19 09:45:33 浏览: 评论:0 

从国外网站找到的一款php生成缩略图代码,有需要的朋友可以参考一下,代码如下:

  1. <?php
  2. /* 
  3. * File: SimpleImage.php 
  4. * Author: Simon Jarvis 
  5. * Copyright: 2006 Simon Jarvis 
  6. * Date: 08/11/06 
  7. * Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php 
  8. * 
  9. * This program is free software; you can redistribute it and/or 
  10. * modify it under the terms of the GNU General Public License 
  11. * as published by the Free Software Foundation; either version 2 
  12. * of the License, or (at your option) any later version. 
  13. * 
  14. * This program is distributed in the hope that it will be useful, 
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of 
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
  17. * GNU General Public License for more details: 
  18. * http://www.gnu.org/licenses/gpl.html 
  19. * 
  20. */ 
  21.  
  22. class SimpleImage { 
  23.  
  24.    var $image
  25.    var $image_type
  26.  
  27.    function load($filename) { 
  28.  
  29.       $image_info = getimagesize($filename); 
  30.       $this->image_type = $image_info[2]; 
  31.       if$this->image_type == IMAGETYPE_JPEG ) { 
  32.  
  33.          $this->image = imagecreatefromjpeg($filename); 
  34.       } elseif$this->image_type == IMAGETYPE_GIF ) { 
  35.  
  36.          $this->image = imagecreatefromgif($filename); 
  37.       } elseif$this->image_type == IMAGETYPE_PNG ) { 
  38.  
  39.          $this->image = imagecreatefrompng($filename); 
  40.       } 
  41.    } 
  42.    function save($filename$image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) { 
  43.  
  44.       if$image_type == IMAGETYPE_JPEG ) { 
  45.          imagejpeg($this->image,$filename,$compression); 
  46.       } elseif$image_type == IMAGETYPE_GIF ) { 
  47.  
  48.          imagegif($this->image,$filename); 
  49.       } elseif$image_type == IMAGETYPE_PNG ) { 
  50.  
  51.          imagepng($this->image,$filename); 
  52.       } 
  53.       if$permissions != null) { 
  54.  
  55.          chmod($filename,$permissions); 
  56.       } 
  57.    } 
  58.    function output($image_type=IMAGETYPE_JPEG) { 
  59.  
  60.       if$image_type == IMAGETYPE_JPEG ) { 
  61.          imagejpeg($this->image); 
  62.       } elseif$image_type == IMAGETYPE_GIF ) { 
  63.  
  64.          imagegif($this->image); 
  65.       } elseif$image_type == IMAGETYPE_PNG ) { 
  66.  
  67.          imagepng($this->image); 
  68.       } 
  69.    } 
  70.    function getWidth() { 
  71.  
  72.       return imagesx($this->image); 
  73.    } 
  74.    function getHeight() { 
  75.  
  76.       return imagesy($this->image); 
  77.    } 
  78.    function resizeToHeight($height) { 
  79.  
  80.       $ratio = $height / $this->getHeight(); 
  81.       $width = $this->getWidth() * $ratio
  82.       $this->resize($width,$height); 
  83.    } 
  84.  
  85.    function resizeToWidth($width) { 
  86.       $ratio = $width / $this->getWidth(); 
  87.       $height = $this->getheight() * $ratio
  88.       $this->resize($width,$height); 
  89.    } 
  90.  
  91.    function scale($scale) { 
  92.       $width = $this->getWidth() * $scale/100; 
  93.       $height = $this->getheight() * $scale/100; 
  94.       $this->resize($width,$height); 
  95.    } 
  96.  
  97.    function resize($width,$height) { 
  98.       $new_image = imagecreatetruecolor($width$height); 
  99.       imagecopyresampled($new_image$this->image, 0, 0, 0, 0, $width$height$this->getWidth(), $this->getHeight()); 
  100.       $this->image = $new_image
  101.    }       
  102.  
  103. }//开源代码phpfensi.com 
  104. ?> 

保存文件作为SimpleImage之上,php和看看以下的例子如何使用脚本,下面的第一个例子将加载一个文件命名图片,jpg调整到250像素宽,400像素高,picture2.jpg重新保存,代码如下:

  1. <?php 
  2.    include('SimpleImage.php'); 
  3.    $image = new SimpleImage(); 
  4.    $image->load('picture.jpg'); 
  5.    $image->resize(250,400); 
  6.    $image->save('picture2.jpg'); 
  7. ?> 

如果你想调整specifed宽度但保持尺寸比例相同的脚本可以为你计算出所需的高度,只使用resizeToWidth函数,代码如下:

  1. <?php 
  2.    include('SimpleImage.php'); 
  3.    $image = new SimpleImage(); 
  4.    $image->load('picture.jpg'); 
  5.    $image->resizeToWidth(250); 
  6.    $image->save('picture2.jpg');//开源代码phpfensi.com 
  7. ?> 

Tags: php生成缩略图 php缩略图类

分享到: