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

php给图片加水印函数

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-20 09:49:15 浏览: 评论:0 
  1. function Watermark_IM($preview = 0) { 
  2.   global $watermarkstatus, $watermarktype, $watermarktrans, $watermarkquality, $watermarktext, $imageimpath; 
  3.   $watermarkstatus = $GLOBALS['forum']['disablewatermark'] ? 0 : $watermarkstatus; 
  4.   switch($watermarkstatus) { 
  5.    case 1: 
  6.     $gravity = 'NorthWest'
  7.     break
  8.    case 2: 
  9.     $gravity = 'North'
  10.     break
  11.    case 3: 
  12.     $gravity = 'NorthEast'
  13.     break
  14.    case 4: 
  15.     $gravity = 'West'
  16.     break
  17.    case 5: 
  18.     $gravity = 'Center'
  19.     break
  20.    case 6: 
  21.     $gravity = 'East'
  22.     break
  23.    case 7: 
  24.     $gravity = 'SouthWest'
  25.     break
  26.    case 8: 
  27.     $gravity = 'South'
  28.     break
  29.    case 9: 
  30.     $gravity = 'SouthEast'
  31.     break
  32.   } 
  33.   $targetfile = !$preview ? $this->targetfile : DISCUZ_ROOT.'./forumdata/watermark_temp.jpg'
  34.   if($watermarktype < 2) { 
  35.    $watermark_file = $watermarktype == 1 ? DISCUZ_ROOT.'./images/common/watermark.png' : DISCUZ_ROOT.'./images/common/watermark.gif'
  36.    $exec_str = $imageimpath.'/composite'
  37.     ($watermarktype != 1 && $watermarktrans != '100' ? ' -watermark '.$watermarktrans.'%' : ''). 
  38.     ' -quality '.$watermarkquality. 
  39.     ' -gravity '.$gravity. 
  40.     ' '.$watermark_file.' '.$this->targetfile.' '.$targetfile; 
  41.   } else { 
  42.    $watermarktextcvt = str_replace(array("n""r""'"), array('', '', '''), pack("H*", $watermarktext['text'])); 
  43.    $watermarktext['angle'] = -$watermarktext['angle']; 
  44.    $translate = $watermarktext['translatex'] || $watermarktext['translatey'] ? ' translate '.$watermarktext['translatex'].','.$watermarktext['translatey'] : ''
  45.    $skewX = $watermarktext['skewx'] ? ' skewX '.$watermarktext['skewx'] : ''
  46.    $skewY = $watermarktext['skewy'] ? ' skewY '.$watermarktext['skewy'] : ''
  47.    $exec_str = $imageimpath.'/convert'
  48.     ' -quality '.$watermarkquality. 
  49.     ' -font "'.$watermarktext['fontpath'].'"'
  50.     ' -pointsize '.$watermarktext['size']. 
  51.     (($watermarktext['shadowx'] || $watermarktext['shadowy']) && $watermarktext['shadowcolor'] ? 
  52.      ' -fill "rgb('.$watermarktext['shadowcolor'].')"'
  53.      ' -draw "'
  54.       ' gravity '.$gravity.$translate.$skewX.$skewY. 
  55.       ' rotate '.$watermarktext['angle']. 
  56.       ' text '.$watermarktext['shadowx'].','.$watermarktext['shadowy'].' ''.$watermarktextcvt.''"' : ''). 
  57.     ' -fill "rgb('.$watermarktext['color'].')"'
  58.     ' -draw "'
  59.      ' gravity '.$gravity.$translate.$skewX.$skewY. 
  60.      ' rotate '.$watermarktext['angle']. 
  61.      ' text 0,0 ''.$watermarktextcvt.''"'
  62.     ' '.$this->targetfile.' '.$targetfile; 
  63.   }//开源代码phpfensi.com 
  64.   @exec($exec_str, $output, $return); 
  65.   if(empty($return) && empty($output)) { 
  66.    $this->attach['size'] = filesize($this->targetfile); 
  67.   } 
  68.  } 

Tags: php图片水印 php水印函数

分享到: