zoukankan      html  css  js  c++  java
  • php给一张图片加上水印效果

     1 <?php
     2 /**
     3   * 功能:给一张图片加上水印效果
     4   *           $i  要加水印效果的图片
     5   *           $t  水印文字
     6   *           $size 文字大小
     7   *           $pos 水印的位置
     8   *            $color 文字的颜色
     9   *           $flag 是布尔值,主要用来区分是不是原图上加水印
    10   *           $type 如果$flag等于false 则新图上加上水印 新文件名为 原名_txt.jpg
    11   */
    12 function txt($i,$t='版权所有',$size=25,$pos=5,$color='rand',$flag=true,$type='_txt'){
    13     $img = imagecreatefromjpeg($i);
    14     $w = imagesx($img);
    15     $h = imagesy($img);
    16     $font = dirname(__FILE__).'/font/ls.ttf';
    17     $ps = imagettfbbox($size,0,$font,$t);
    18     $tw = $ps[4];
    19     $th = abs($ps[5]);
    20     switch($pos){
    21         case 1:break;   
    22         case 2:break;   
    23         case 3:break;   
    24         case 4:break;   
    25         case 5:$x=($w-$tw)/2;$y=($h-$th)/2+$th;break;   
    26         case 6:break;   
    27         case 7:break;   
    28         case 8:break;   
    29         case 9:break;   
    30         default:break;
    31     }
    32     $c = getcolor($img,$color);
    33     imagettftext($img,$size,0,$x,$y,$c,$font,$t);
    34     if($flag){
    35         imagejpeg($img,$i); 
    36     }else{
    37         $ext = ext($i);
    38         $ppp = rtrim($i,'.'.$ext);
    39         $ppp = $ppp.$type.'.'.$ext;
    40         imagejpeg($img,$ppp);
    41     }
    42 }
    43  
    44 function getcolor($i,$c='rand',$a=50){
    45     $cc = '';
    46     switch($c){
    47         case 'white':$cc=imagecolorallocatealpha($i,255,255,255,$a);break;
    48         case 'black':$cc=imagecolorallocatealpha($i,0,0,0,$a);break;
    49         case 'red':$cc=imagecolorallocatealpha($i,255,0,0,$a);break;
    50         case 'green':$cc=imagecolorallocatealpha($i,0,255,0,$a);break;
    51         case 'blue':$cc=imagecolorallocatealpha($i,0,0,255,$a);break;
    52         case 'orange':$cc=imagecolorallocatealpha($i,0xff,0x66,0x33,$a);break;
    53         case 'yellow':$cc=imagecolorallocatealpha($i,255,255,0,$a);break;
    54         case 'rand':$cc=imagecolorallocatealpha($i,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255),$a);break;
    55         default:
    56             $cs = substr($c,1);
    57             $ok = str_split($cs,2);
    58             $cc = imagecolorallocatealpha($i,hexdec($ok[0]),hexdec($ok[1]),hexdec($ok[2]),$a);
    59         break;      
    60     }
    61     return $cc;
    62 }
    63  
    64  
    65 /**
    66  * 功能是:返回扩展名
    67  */
    68   
    69 function ext($f){
    70     $exts = explode('.',$f);
    71     return end($exts);
    72 }
    73  
    74 /**
    75   *  功能是:返回文件名,不含扩展名
    76   */
    77 function name($f){
    78     $s = explode('/',$f);
    79     $fn = end($s);
    80     return rtrim($fn,'.'.ext($f));
    81 }
  • 相关阅读:
    BZOJ 1500 维修数列
    BZOJ 1501 智慧珠游戏
    BZOJ 1507 Editor
    BZOJ 3223 文艺平衡树
    BZOJ 3224 普通平衡树
    BZOJ 3196 二逼平衡树
    BZOJ 1048 分割矩阵
    BZOJ 1047 理想的正方形
    BZOJ 1046 上升序列
    BZOJ 1045 糖果传递
  • 原文地址:https://www.cnblogs.com/inc-is-include/p/5086490.html
Copyright © 2011-2022 走看看