• 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 }
  • 相关阅读:
    Java实现 LeetCode 735 行星碰撞(栈)
    Java实现 LeetCode 735 行星碰撞(栈)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 蓝桥杯算法提高 求最大值
    Java实现 蓝桥杯算法提高 求最大值
    Java实现 蓝桥杯算法提高 求最大值
    Python eval() 函数
    Python repr() 函数
  • 原文地址:https://www.cnblogs.com/inc-is-include/p/5086490.html
Copyright © 2020-2023  润新知