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

php 创建等比例图片代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-19 10:12:58 浏览: 评论:0 

说明:$maxwidth和$maxheight只能传递一个,如果传最大宽度将自动计算高度,如果传最大高度将自动计算宽度.

返 回 值:如果创建成功返回文件保存的地址,否则返回false.

php 创建等比例图片代码如下:

  1. <?php 
  2. /************************************************************************ 
  3. * 函数名称:createSmallImg() 
  4. * 函数说明:创建等比例图片 
  5. * 输入参数: 
  6.  $dir 保存路径 
  7.  $source_img 原图片名称 
  8.  $small_ex 缩率图文件名后缀 
  9.  $maxwidth 最大宽度 
  10.  $maxheight 最大高度 
  11. * 说    明:$maxwidth和$maxheight只能传递一个,如果传最大宽度将自动计算高度,如果传最大高度将自动计算宽度 
  12. * 返 回 值:如果创建成功返回文件保存的地址,否则返回false 
  13. * 编 写 者:李小宇 
  14. * 编写时间:2011/8/18 
  15. **************************************************************************/ 
  16. function createSmallImg($dir,$source_img,$small_ex="_s",$maxwidth='',$maxheight='') { 
  17.  if(!emptyempty($maxwidth) && !emptyempty($maxheight)) { 
  18.   return false; 
  19.  } 
  20.  $img_name=substr($source_img,0,-4); 
  21.  $img_ex = strtolower(substr(strrchr($source_img,"."),1)); 
  22.  /*注释的这段用作直接在浏览器上显示图片 
  23.  $im=imagecreatefromjpeg($file); 
  24.  header("Content-type: image/jpeg"); 
  25.  imagejpeg($im);*/ 
  26.  switch($img_ex) { 
  27.   case "jpg"
  28.    $src_img=imagecreatefromjpeg($dir.$source_img); 
  29.    break
  30.   case "gif"
  31.    $src_img=imagecreatefromgif($dir.$source_img); 
  32.    break
  33.   case "png"
  34.    $src_img=imagecreatefrompng($dir.$source_img); 
  35.    break
  36.  }//开源代码phpfensi.com 
  37.  $old_width=imagesx($src_img); 
  38.  $old_height=imagesy($src_img); 
  39.  if(!emptyempty($maxheight) && $old_height>=$maxheight) { 
  40.   $new_height=$maxheight
  41.   $new_width=round(($old_width*$new_height)/$old_height); 
  42.  } elseif(!emptyempty($maxwidth) && $old_width>=$maxwidth) { 
  43.   $new_width=$maxwidth
  44.   $new_height=round(($old_height*$new_width)/$old_width); 
  45.  } 
  46.  if(!emptyempty($new_width) || !emptyempty($new_height)) { 
  47.   if($img_ex=="jpg" || $img_ex=="png") { 
  48.    $dst_img=imagecreatetruecolor($new_width,$new_height); 
  49.   } else { 
  50.    $dst_img=imagecreate($new_width,$new_height); 
  51.   } 
  52.   imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_width,$new_height,$old_width,$old_height); 
  53.   $smallname=$dir.$img_name.$small_ex.".".$img_ex
  54.   switch($img_ex) { 
  55.    case "jpg"
  56.     imagejpeg($dst_img,$smallname,100); 
  57.     break
  58.    case "gif"
  59.     imagegif($dst_img,$smallname); 
  60.     break
  61.    case "png"
  62.     imagepng($dst_img,$smallname); 
  63.     break
  64.   } 
  65.  } 
  66.  return $smallname
  67. ?> 

Tags: php创建 比例图片

分享到: