php按百分比生成缩略图的代码分享

于是翻了一下手册,弄懂几个函数后自己写了一个简单的php生成缩略图的程序。没有用类,我觉得一个函数就能搞定,而且对于新手来说更容易去理解,从而可以帮助到更多的人。

支持按比分比缩略,支持按指定的长宽缩略,默认按百分比。程序中注释已经很详细了,如有问题可在下面留言,欢迎与我交流。

源码如下:


代码如下:

<?php

/*
  * param ori_img 原图像的名称和路径
  * param new_img 生成图像的名称
  * param percent 表示按照原图的百分比进行缩略,此项为空时默认按50%
  * param width 指定缩略后的宽度
  * param height 指定缩略后的高度
  *
  * 注:当 percent width height 都传入值的时候,且percent>0时,优先按照百分比进行缩略
  * by:http://www.jb51.net 更多源码与你分享
  * 温馨提示:使用此功能要在php.ini中开启 gd2
  *
  **/

function makeThumb($ori_img, $new_img, $percent=50, $width=0, $height=0){

$original = getimagesize($ori_img); //得到图片的信息,可以print_r($original)发现它就是一个数组
  //$original[2]是图片类型,其中1表示gif、2表示jpg、3表示png
  switch($original[2]){
   case 1 : $s_original = imagecreatefromgif($ori_img);
    break;
   case 2 : $s_original = imagecreatefromjpeg($ori_img);
    break;
   case 3 : $s_original = imagecreatefrompng($ori_img);
    break;
  }

if($percent > 0){
   $width = $original[0] * $percent / 100;
   $width = ($width > 0) ? $width : 1;
   $height = $original[1] * $percent / 100;
   $height = ($height > 0) ? $height : 1;
  }

//创建一个真彩的画布
  $canvas = imagecreatetruecolor($width,$height);
  imagecopyresized($canvas, $s_original, 0, 0, 0, 0, $width, $height, $original[0], $original[1]);
  //header("Content-type:image/jpeg");
  //imagejpeg($canvas); //向浏览器输出图片
  $loop = imagejpeg($canvas, $new_img); //生成新的图片
  if($loop){
   echo "OK!<br/>";
  }
 }

makeThumb("bhsj.jpg","suolue1.jpg",15,0,0); //生成原图15%的缩略图
 makeThumb("bhsj.jpg","suolue2.jpg",0,200,120); //生成宽为100px,高为60px的缩略图
 makeThumb("bhsj.jpg","suolue3.jpg",15,200,120); //生成原图15%的缩略图(参数都填时,百分率优先级大)

?>

(0)

相关推荐

  • php实现根据url自动生成缩略图的方法

    本文实例讲述了php实现根据url自动生成缩略图的方法,是非常实用的功能.分享给大家供大家参考.具体方法如下: 原理:设置apache rewrite ,当图片不存在时,调用php创建图片. 例如: 原图路径为:http://localhost/upload/news/2013/07/21/1.jpg 缩略图路径为:http://localhost/supload/news/2013/07/21/1.jpg 当访问 http://localhost/supload/news/2013/07/21

  • PHP使用imagick读取PDF生成png缩略图的两种方法

    一.ImageMagick是什么ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式.利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小.旋转.锐化.减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存.二.php_imagick什么一个可以供PHP调用ImageMagick功

  • php实现上传图片生成缩略图示例

    功能很简单,代码中有注释,直接给大家上代码了 复制代码 代码如下: <?php/** * 上传图片生成缩略图 *  * 需要GD2库的支持 *  * 初始化时需要参数new thumbnails('需要缩略的图片的原始地址','缩略图的宽度','缩略图的高度','(可选参数)缩略图的保存路径'); * 如果最后一个参数不指定,那么缩略图就默认保存在原始图片的所在目录里的small文件夹里, * 如果不存在small文件夹,则会自动创建small文件夹 *  * 初始化之后需要调用方法produc

  • jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码

    本例用到其他2个php class.upload.php和 functions.php还有css和js以及img文件 完整实例代码点击此处本站下载. 效果图如下: 实现代码如下: JavaScript代码如下: 复制代码 代码如下: <script type="text/javascript">  $(document).ready(function() {      $("#filelist").niceScroll({          cursor

  • PHP生成自适应大小的缩略图类及使用方法分享

    把下面的代码直接复制,新建一个文件叫做 thumbnailimage.php  ,文件名最好不要用大写,把以下代码复制进去: 复制代码 代码如下: <?php define ( 'MAX_IMG_SIZE', 100000 ); // Supported image typesdefine ( 'THUMB_JPEG', 'image/jpeg' );define ( 'THUMB_PNG', 'image/png' );define ( 'THUMB_GIF', 'image/gif' );

  • php实现按指定大小等比缩放生成上传图片缩略图的方法

    本文实例讲述了php实现按指定大小等比缩放生成上传图片缩略图的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /**  * *  *等比缩放  * @param unknown_type $srcImage   源图片路径  * @param unknown_type $toFile     目标图片路径  * @param unknown_type $maxWidth   最大宽  * @param unknown_type $maxHeight  最大高  * @par

  • php利用GD库生成缩略图示例

    php利用GD库生成缩略图. 复制代码 代码如下: <form method="post" action="suo_do.php" enctype="multipart/form-data"> <input type="file" name="pic" /> <input type="submit" value="上传1" /> &

  • PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)

    还是老规矩,直接上代码 <?php /** * 缩略图生成类,使用示例: */ $newimage=new ImageResize(); $newimage->resize("tu.jpg","tu_lit.jpg",1000,1000); echo $newimage->GetLastError(); class ImageResize{ private $localimage;//原图路径 private $remoteimage;//缩略图保

  • 基于PHP服务端图片生成缩略图的方法详解

    复制代码 代码如下: <?php//定义缩略图片尺寸$picSize = array(              '100_100'=> 1,              '200_100'=> 1           );$imagePath = "../image/";function parseUrl($url){   preg_match("/(?P<name>[\w\d]+)_w(?P<width>\d+)_h(?P<h

  • php生成缩略图填充白边(等比缩略图方案)

    网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放的话就会导致图片变形,这样体验肯定就不好了.于是笔者想了一个折中的办法,就是缩小后添加白边的方法. 源图,尺寸是600×366: 最终生成的效果图: 代码相对比较长些,下面简单说下思路: 先将源图按比例生成缩略图,并且宽不大于160.高不大于120.例如上图会先生成160×98的缩略图.新建一个16

随机推荐