zoukankan      html  css  js  c++  java
  • php图片水印(可以设置透明度)

     1<?php    
     2function watermask($destination,$waterpngfilename,$pos = 'rb',$transparent = 20)     
     3{    
     4// 参数分别是 $destination => 图片地址,    
     5// $waterpngfilename => 水印图片地址    
     6// $pos => 水印位置 lt 左上 lb 左下 rt 右上 rb 右下(默认)    
     7// $transparent => 透明度 默认 20     
     8$imagetype = array("1"=>"gif","2"=>"jepg","3"=>"png","4"=>"wbmp");    
     9$image_size = getimagesize($destination);    
    10$iinfo=getimagesize($destination,$iinfo);     
    11$f ="imagecreatefrom".$imagetype[$iinfo[2]];    
    12$simage = $f($destination);    
    13$imagesize_mask = getimagesize($waterpngfilename);    
    14$f ="imagecreatefrom".$imagetype[$imagesize_mask[2]];    
    15$simage1 = $f($waterpngfilename); // 水印文件    
    16// 合并2个文件    
    17switch($pos)    
    18{    
    19case 'lt':    
    20imagecopymerge($simage,$simage1,0,0,0,0,$imagesize_mask[0],    
    21$imagesize_mask[1],$transparent); // 左上    
    22break;    
    23case 'lb':    
    24imagecopymerge($simage,$simage1,0,$image_size[1]-$imagesize_mask[1]    
    25,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); // 左下    
    26break;    
    27case 'rt':    
    28imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0],     
    290,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); // 右上    
    30break;    
    31case 'rb':    
    32imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0],     
    33$image_size[1]-$imagesize_mask[1],0,0,$imagesize_mask[0],    
    34$imagesize_mask[1],$transparent); // 右下    
    35break;    
    36}    
    37// 输出    
    38$f ="image".$imagetype[$iinfo[2]];    
    39$f($simage,$destination);    
    40imagedestroy($simage);     
    41imagedestroy($simage1);    
    42}    
    43watermask("图片.gif","水印.gif");    
    44?> 
  • 相关阅读:
    接口设计安全
    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解
    OpenSSL使用小结
    sql的三种去重
    关于if语句&&运算符先判断空异常
    关于数据库可为null的datetime 字段
    sql server去重
    asp.net updatepanel 局部更新后调用js
    级联 -- 逻辑
    关于滑动验证的思路构思
  • 原文地址:https://www.cnblogs.com/studio313/p/1052428.html
Copyright © 2011-2022 走看看