首页  >  文章  >  php教程  >  php 生成缩略图

php 生成缩略图

WBOY
WBOY原创
2016-06-06 20:00:481144浏览

?php /* *生成缩略图 *$imgPath(图片路径), $maxWidth(宽), $maxHeight(高), $directOutput = true(是否在页面输出), $quality = 90, $verbose,$imageType(图片类型) * * */ function resizeImg($imgPath, $maxWidth, $maxHeight, $directOutput =

/*

*生成缩略图

*$imgPath(图片路径), $maxWidth(宽), $maxHeight(高), $directOutput = true(是否在页面输出), $quality = 90, $verbose,$imageType(图片类型)

*

*

*/
function resizeImg($imgPath, $maxWidth, $maxHeight, $directOutput = true, $quality = 90, $verbose,$imageType)
  {
    $size = getimagesize($imgPath);

    //print_r($size);exit;
     // 如果读取图像信息失败则中断并返回 false
    if(!$size){
      if($verbose && !$directOutput) echo "
无法读取图像信息。
";
     
      return false;
    }
  
     // 关系:宽度/高度
    $relation = $size[0]/$size[1];
     // 最大尺寸(如果参数 == false,则不会调整大小)
    $maxSize = array($maxWidth?$maxWidth :$size[0],$maxHeight?$maxHeight:$size[1]);
     // 声明新大小的数组(初始值 = 原始大小)
    $newSize = $size;
     / / 宽度/高度关系
    $relation = array($size[1]/$size[0], $size[0]/$size[1]);
  //print_r($size);
  //echo "
";
  //print_r($relation);exit;
  
   if(($newSize[0] > $maxWidth))
   {
    $newSize[0]=$maxSize[0];
    $newSize[1]=$newSize[0]*$relation[0];
   }
      
   if(($newSize [1] > $maxHeight))
   {
    $newSize[1]=$maxSize[1];
    $newSize[0]=$newSize[1]*$relation[1];
   }
   
   
    // 创建图像
      switch($size[2])
      {
     情况 1:
       if(function_exists("imagecreatefromgif"))
       {
      $originalImage = imagecreatefromgif($imgPath);
       }else{
      if($verbose && !$directOutput)echo "
在此 php 安装中不支持 GIF,抱歉.
";
      return false;
       }
      break;
     情况 2: $originalImage = imagecreatefromjpeg($imgPath);中断;
     情况 3: $originalImage = imagecreatefrompng($imgPath); Break;
     默认值:
       if($verbose && !$directOutput)echo "
> 无有效的图像类型。
";
       return false;
      }
  
    // 创建新图像
  
      $resizedImage = imagecreatetruecolor($newSize[0], $newSize[1]);
  
      imagecopyresampled($resizedImage, $originalImage,0, 0, 0, 0,$newSize[0], $newSize[1], $size[0], $size[1]);

   $rz=$imgPath;
  
    // 输出或保存
      if($directOutput)
    {
     imagejpeg($resizedImage);
     }
     else
    {
     
     $exp=explode(".",$imgPath);
     $extension=end($exp);//$exp[count($exp)-1];
     $newimage=$imageType.".".$extension;
     $rz=preg_replace("//.([a-zA-Z]{3,4})$/",$newimage,$imgPath) ;
        imagejpeg($resizedImage, $rz, $quality);
     }
    // 如果成功则返回 true
      return $rz;
  } // 结束函数调整图像大小 

 

//调用
 resizeImg("var/chen.jpg", 125 ,75, false, 100, 0,"_thumb");
?>

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn