加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

帝国cms前台投稿标题图片字段上传图片自动加上水印的技巧

发布时间:2021-11-26 16:05:50 所属栏目:PHP教程 来源:互联网
导读:在e/class/userfun.php这个自定义函数文件中添加一个函数 01 function user_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){ 02 global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$tranpicturetype,$musername; 03 //$filetf=$f.imgf;//变量名 04 $filetf

在e/class/userfun.php这个自定义函数文件中添加一个函数
 
01
function user_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){
02
        global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$tranpicturetype,$musername;
03
        //$filetf=$f.'imgf';//变量名
04
  $filetf=$f.'file';//变量名
05
        if(!$_FILES[$filetf]['name'])
06
        {
07
                return '';
08
        }
09
        $classid=(int)$_POST['classid'];//栏目ID
10
        $id=(int)$_POST['id'];//信息ID
11
        $filepass=(int)$_POST['filepass'];
12
        $filetype=GetFiletype($_FILES[$filetf]['name']);//文件类型
13
        $pr=$empire->fetch1("select qaddtran,qaddtransize,qaddtranimgtype from {$dbtbpre}enewspublic limit 1");
14
        if(!$pr['qaddtran'])
15
        {
16
                printerror("CloseQTranPic","",1);//系统关闭上传图片功能
17
        }
18
        if(!strstr($pr['qaddtranimgtype'],"|".$filetype."|"))
19
        {
20
                printerror("NotQTranFiletype","",1);//您上传的文件扩展名有误
21
        }
22
        if($_FILES[$filetf]['size']>$pr['qaddtransize']*1024)
23
        {
24
                printerror("TooBigQTranFile","",1);//您上传的文件大小超过系统限制
25
        }
26
        if(!strstr($tranpicturetype,','.$filetype.','))
27
        {
28
                printerror("NotQTranFiletype","",1);//您上传的文件扩展名有误
29
        }
30
        $tfr=DoTranFile($_FILES[$filetf]['tmp_name'],$_FILES[$filetf]['name'],$_FILES[$filetf]['type'],$_FILES[$filetf]['size'],$classid);
31
        if($tfr['tran'])
32
        {
33
                //获取参数
34
    $csr=explode(',',$cs);
35
                $maxwidth=$csr[0];
36
                $maxheight=$csr[1];
37
    $datu=$csr[2];//是否保留原图判断
38
    $suiyi=$csr[3];//是否加水印判断
39
     include_once(ECMS_PATH.'e/class/gd.php');
40
                $yname=$tfr['yname'];//大图完整地址
41
                //加水印
42
                /*
43
                * 功能:图片加水印 (水印支持图片或文字)
44
                * 参数:
45
                *      $groundImage    背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式;
46
                *      $waterPos        水印位置,有10种状态,0为随机位置;
47
                *                        1为顶端居左,2为顶端居中,3为顶端居右;
48
                *                        4为中部居左,5为中部居中,6为中部居右;
49
                *                        7为底端居左,8为底端居中,9为底端居右;
50
                *      $waterImage        图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式;
51
                *      $waterText        文字水印,即把文字作为为水印,支持ASCII码,不支持中文;
52
                *      $textFont        文字大小,值为1、2、3、4或5,默认为5;
53
                *      $textColor        文字颜色,值为十六进制颜色值,默认为#FF0000(红色);
54
                *
55
                * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG
56
                *      $waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。
57
                *      当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。
58
                *      加水印后的图片的文件名和 $groundImage 一样。
59
                *      $w_pct  $w_quality 分别是图片质量,水印透明度
60
                */           
61
                if($suiyi=="yes" and $datu=="yes"){
62
         imageWaterMark($tfr[yname],5,"../data/mark/maskdef.gif","",5,"#FF0000","../data/mark/cour.ttf",100,100);//执行加水印
63
    }
64
                $name=$tfr['name'];//缩图完整地址
65
                //生成缩图
66
                $filer=ResizeImage($yname,$name,$maxwidth,$maxheight,$public_r['spickill']);  
67
                 
68
                 if($datu=="no"){
69
                     DelFiletext($yname);//删除大图
70
    }
71
     
72
     
73
                if($filer['file'])
74
                {
75
                        //写入数据库
76
                        $type=1;
77
                        $filetime=date("Y-m-d H:i:s");
78
                        $filesize=@filesize($filer['file']);
79
                        $filename=GetFilename(str_replace(ECMS_PATH,'',$filer['file']));
80
                        $adduser='[Member]'.$musername;
81
                        $infoid=$isadd==1?0:$id;
82
                        //$empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,fpath) values('$filename','$filesize','$adduser','$tfr[filepath]','$filetime','$classid','[s]".addslashes(RepPostStr($_POST[title]))."','$type','$infoid','$filepass','$public_r[fpath]');");插入附件缩图
83
      if($datu=="yes"){
84
      $empire->query("insert into {$dbtbpre}enewsfile(filename,filesize,adduser,path,filetime,classid,no,type,id,cjid,fpath) values('$tfr[filename]','$filesize','$adduser','$tfr[filepath]','$filetime','$classid','".addslashes(RepPostStr($_POST[title]))."','$type','$infoid','$filepass','$public_r[fpath]');");//插入附件原图
85
      }
86
                }
87
    //$value=str_replace($tfr['filename'],$filename,$tfr['url']);//返回缩图地址
88
    $value=$tfr['url'];//返回原图地址
89
        }
90
        else
91
        {
92
                $value='';
93
        }
94
        return $value;
95
}
在titlepic中添加处理函数,如图所示:
 
具体字段处理函数添加说明如下:user_TranImgAuto##160,120,yes,yes
 
160 宽度
 
120 高度
 
no 代表删除大图保留缩图,同时下面第4个参数无效 yes 代表保留大图和小图
 
no 代表不加水印 yes 代表加水印

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读