搜索
查看: 1702|回复: 0

分享php多功能图片处理类

[复制链接]

5378

主题

5381

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
17651
发表于 2018-2-11 12:11:13 | 显示全部楼层 |阅读模式

            本文实例为大家分享了多功能php图片处理类,供大家参考,具体内容如下
path=$path;
    }
  }
  /**
   +-----------------------------------------------
   * 等比缩放函数
   +-----------------------------------------------
   * @param unknown $name 需处理图片的名称
   * @param unknown $width 缩放后的宽度
   * @param unknown $height 缩放后的高度
   * @param string $thumb_prixs 缩放后的前缀名
   * @return mixed $newname 返回的缩放后的文件名
   */
  function thumb($name,$width,$height,$thumb_prixs='th_'){
    //获取图片信息
    $Info=$this->ImageInfo($name); //图片的宽度,高度,类型
    //获取图片资源,各种类型的图片都可以创建资源,jpg,gif,png
    $imagres=$this->Img_resouce($name, $Info);
    //获取计算图片等比例之后的大小,
    $size=$this->getNewSize($name,$width,$height,$Info);
    //获取新的图片资源,处理透明背景
    $new$this->getImage($imagres,$size,$Info);
    //另存为一个新的图片,返回新的缩放后的图片名称
    $newname=$this->SaveNewImage($newimg,$thumb_prixs.$name,$Info);
    return $newname;  
  }
   
  /**
   +-----------------------------------------------------------------------
   * 水印标记函数
   +-----------------------------------------------------------------------
   * @param unknown $backname  背景文件名
   * @param unknown $watername 水印文件名
   * @param number $waterpos  水印位置
   * @param string $wa_prixs  水印前缀名
   * @return boolean
   */
  function waterMark($backname,$watername,$waterpos=0,$wa_prixs='wa_') {
     
    if (file_exists($this->path.$backname) && file_exists($this->path.$watername)) {
      
      $backinfo=$this->ImageInfo($backname);
      
      $waterinfo=$this->ImageInfo($watername);
      
      if(!$pos=$this->getPos($backinfo, $waterinfo, $waterpos)){
        echo "水印图片不应该比背景图片小";
        return false;
      }
       $back$this->Img_resouce($backname, $backinfo);
        
       $water$this->Img_resouce($watername, $waterinfo);
       var_dump($backimg);exit();
       $back$this->CopyImage($backimg, $waterimg, $pos, $waterinfo);
        
       $this->SaveNewImage($backimg, $wa_prixs.$backname, $backinfo);
    }else{
      
      echo "图片或水印不存在";
      return false;
    }
  }
  /**
   +-----------------------------------------------------------------------
   * 获取图片信息函数
   +-----------------------------------------------------------------------
   * @param unknown $name
   * @return unknown
   */
   
   private function ImageInfo($img) {
    $imageInfo=getimagesize($img);
    if ($imageInfo!==false) {
      $imageType=strtolower(substr(image_type_to_extension($imageInfo[2]),1));
      $imageSize=filesize($img);
      $Info=array(
        "width" => $imageInfo[0],
        "height" => $imageInfo[1],
        "type" => $imageType,
        "size" => $imageSize,
        "mime" => $imageInfo['mime']
      );
      return $Info;
    }else{
      return false;
    }   
  }
   
   
  /**
   +--------------------------------------------------------
   * 创建原图像格式函数
   +--------------------------------------------------------
   * @param unknown $name
   * @param unknown $imaginfo
   * @return boolean|resource
   */
  private function Img_resouce($name,$imageinfo){
    $iamgeres=$this->path.$name;
    //var_dump($iamgeres);exit();
     switch ($imageinfo['type']) {
      case 'gif':
       $($name);
         break;
      case 'jpg':
       $($name);
         break;
      case 'png':
       $($name);
         break;            
     }
     return $img;
  }
  /**
   +--------------------------------------------------
   * 获取等比缩放尺寸函数
   +--------------------------------------------------
   * @param unknown $name
   * @param unknown $width
   * @param unknown $height
   * @param unknown $imaginfo
   * @return Ambigous
   */
  private function getNewSize($name,$width,$height,$imaginfo){
       $size['width']=$imaginfo['width'];
       $size['height']=$imaginfo['height'];
    if ($width$imaginfo['height']*$size['height']) {
      $size['height']=round($imaginfo['height']*$size['width']/$imaginfo['width']);
    }else{
      $size['width']=round($imaginfo['width']*$size['height']/$imaginfo['height']);
    }
    return $size;  
  }
  private function getImage($imageres,$size,$imageinfo){
    //新建一个真彩色图像
    $new($size['width'], $size['height']);
    //将某个颜色定义为透明色
    $otsc=imagecolortransparent($imageres);
    //获取图像的调色板的颜色数目
    if ($otsc>=0&&$otscpath.$newname);
        break;
      case 2://jpg
        $result=imagejpeg($newimg,$this->path.$newname);
        break;
      case 3://png
        $result=imagepng($newimg,$this->path.$newname);
        break;
    }
    imagedestroy($newimg);
    return $newname;
   }
   
   /**
    +-----------------------------------------------------------------
    * 获取水印位置函数
    +-----------------------------------------------------------------
    * @param unknown $backinfo  背景信息
    * @param unknown $waterinfo  水印信息
    * @param unknown $waterpos  水印位置
    * @return boolean|multitype:number 返回坐标数组
    */
   private function getPos($backinfo,$waterinfo,$waterpos) {
     
    if ($backinfo['width']$posX,'posY'=>$posY);
   }
   /**
    +-------------------------------------------------------------------
    * 拷贝图像
    +-------------------------------------------------------------------
    * @param unknown $back背景资源
    * @param unknown $water水印资源
    * @param unknown $pos     水印位置
    * @param unknown $waterinfo  水印信息
    * @return unknown
    */
   private function CopyImage($backimg,$waterimg,$pos,$waterinfo) {
      
    imagecopy($backimg, $waterimg, $pos['posX'], $pos['posY'], 0, 0, $waterinfo['width'], $waterinfo['height']);
    imagedestroy($waterimg);     
     return $backimg;
   }
     
}
?>
长春网站建设 网站设计 www.4435.cn 电话:136 2446 7185(于先生)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

长春门户网站

长春门户网是网民了解长春的网络窗口,同是提供长春地区百姓生活分类供求信息的门户网站,同时提供长春网站建设、长春网站设计,我们将逐步的完善网站分类信息资源;

长春门户网二维码

联系我们

  • 工作时间:早上8:00 - 晚上5:30
  • 投稿联系:13624467185(微信同号)
  • 反馈邮箱:5053050@QQ.com
  • 公司地址:吉林省长春市亚泰大街与自由大路交汇五环国际大厦1408室

QQ|小黑屋|手机版|Archiver|cc! ( 吉ICP备2021009740号-8 )

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表