帝国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 代表加水印 ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |