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 }
  • 相关阅读:
    JavaScript 判断 URL
    AppCan 文件上传实例
    IIS6.0手动安装与配置asp.net2.0全过程
    轻松搭建一个Windows SVN服务器
    IIS6.0上某些文件类型不能下载
    JavaScript 数组转字符串,字符串转数组
    百度地图API 应用实例
    IIS7.5 下:HTTP 错误 404.17 Not Found 请求的内容似乎是脚本 解决方法
    SQL 交集 差集 并集 笛卡尔积 应用实例
    Win7 64位 IIS未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项
  • 原文地址:https://www.cnblogs.com/inc-is-include/p/5086490.html
Copyright © 2011-2022 走看看