龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

ueditor 图片加水印

时间:2014-07-22 14:48来源: 作者: 点击:
分享到:
<无详细内容>
<?php

/*PHP图片加文字水印类库

  
  该类库暂时只支持文字水印,位置为右下角,颜色随机
  
 调用方法:
   1、在需要加水印的文件顶部引入类库:
      include_once 'imageClass.php';
   2、声明新类:
    $tpl=new image_fu;
   3、给图片水印提供参数:
      $tpl->img(图片路径,水印文字,字体路径,字体大小,字体角度);
    比如:$tpl->img('abc.jpg','这是水印文字','ziti.ttf',30,0)
    
*/

 class image_fu{
   
   private $image;
   private $img_info;
   private $img_width;
   private $img_height;
   private $img_im;
   private $img_text;
   private $img_ttf='';
   private $img_new;
   private $img_text_size;
   private $img_jd;
   
   
   function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){
    if(isset($img)&&file_exists($img)){//检测图片是否存在
       $this->image   =$img; 
       $this->img_text=$txt;
       $this->img_text_size=$size;
       $this->img_jd=$jiaodu;
      if(file_exists($ttf)){
       $this->img_ttf=$ttf;
      }else{
       exit('字体文件:'.$ttf.'不存在!'); 
      }
       $this->imgyesno();
    }else{
        exit('图片文件:'.$img.'不存在');
     } 
   }
  
   private function imgyesno(){
    
    $this->img_info  =getimagesize($this->image);
    $this->img_width =$this->img_info[0];//图片宽
    $this->img_height=$this->img_info[1];//图片高
    
    //检测图片类型
    switch($this->img_info[2]){
             case 1:$this->img_im = imagecreatefromgif($this->image);break; 
             case 2:$this->img_im = imagecreatefromjpeg($this->image);break; 
             case 3:$this->img_im = imagecreatefrompng($this->image);break; 
             default:exit('图片格式不支持水印'); 
    }
    
       $this->img_text();
   }
   
   
   private function img_text(){
     
     imagealphablending($this->img_im,true);
     
     //设定颜色
      $color=imagecolorallocate($this->img_im,255,255,255);
      $txt_height=$this->img_text_size;
      $txt_jiaodu=$this->img_jd;
      $ttf_im=imagettfbbox($txt_height,$txt_jiaodu,$this->img_ttf,$this->img_text);
      $w = $ttf_im[2] - $ttf_im[6]; 
          $h = $ttf_im[3] - $ttf_im[7]; 
      //$w = $ttf_im[7]; 
          //$h = $ttf_im[8]; 

          unset($ttf_im);
      
      $txt_y     =$this->img_height*0.5;
      $txt_x     =$this->img_width*0.2;
      //$txt_y     =0;
      //$txt_x     =0;

      
      
      $this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
     
     @unlink($this->image);//删除图片
    switch($this->img_info[2]) {//取得背景图片的格式 
          case 1:imagegif($this->img_im,$this->image);break; 
          case 2:imagejpeg($this->img_im,$this->image);break; 
          case 3:imagepng($this->img_im,$this->image);break; 
          default: exit('水印图片失败'); 
        } 

   }
   
   
   //显示图片
   function img_show(){echo '<img src="'.$this->image.'" border="0" alt="'.$this->img_text.'" />';}
   
   //释放内存
   private function img_nothing(){
     unset($this->img_info); 
         imagedestroy($this->img_im); 
   }
   
 }
 
?>

2. [文件] imageUp.php ~ 2KB     下载(12)     跳至 [1] [2] [全屏预览]

<?php
    /**
     * Created by JetBrains PhpStorm.
     * User: taoqili
     * Date: 12-7-18
     * Time: 上午10:42
     */
    header("Content-Type: text/html; charset=utf-8");
    error_reporting(E_ERROR | E_WARNING);
    include "Uploader.class.php";
    //上传图片框中的描述表单名称,
    $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
    $path = htmlspecialchars($_POST['dir'], ENT_QUOTES);

    //上传配置
    $config = array(
        "savePath" => ($path == "1" ? "upload/" : "upload1/"),
        "maxSize" => 1000, //单位KB
        "allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp")
    );

    //生成上传实例对象并完成上传
    $up = new Uploader("upfile", $config);

    /**
     * 得到上传文件所对应的各个参数,数组结构
     * array(
     *     "originalName" => "",   //原始文件名
     *     "name" => "",           //新文件名
     *     "url" => "",            //返回的地址
     *     "size" => "",           //文件大小
     *     "type" => "" ,          //文件类型
     *     "state" => ""           //上传状态,上传成功时必须返回"SUCCESS"
     * )
     */
    $info = $up->getFileInfo();

    /**
     * 向浏览器返回数据json数据
     * {
     *   'url'      :'a.jpg',   //保存后的文件路径
     *   'title'    :'hello',   //文件描述,对图片来说在前端会添加到title属性上
     *   'original' :'b.jpg',   //原始文件名
     *   'state'    :'SUCCESS'  //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
     * }
     */

/*    include "imgwater.php";
    $tpl=new image_fu;
    $tpl->img($info['url'],'http://www.zgxbzh.com/','simsun.ttc',30,0);*/

    echo "{'url':'" . $info["url"] . "','title':'" . $title . "','original':'" . $info["originalName"] . "','state':'" . $info["state"] . "'}";


精彩图集

赞助商链接