帝国cms前台投稿问题图片字段上传图片自动加上水印的要领
发布时间:2021-01-10 02:17:51 所属栏目:教程 来源:网络整理
导读:在e/class/userfun.php这个自界说函数文件中添加一个函数 function user_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){ global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$tranpicturetype,$musername; //$filetf=$f.'imgf';//变量名 $filetf=$f.'file'
|
在e/class/userfun.php这个自界说函数文件中添加一个函数 function user_TranImgAuto($mid,$f,$isadd,$isq,$value,$cs){
global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$tranpicturetype,$musername;
//$filetf=$f.'imgf';//变量名
$filetf=$f.'file';//变量名
if(!$_FILES[$filetf]['name'])
{
return '';
}
$classid=(int)$_POST['classid'];//栏目ID
$id=(int)$_POST['id'];//信息ID
$filepass=(int)$_POST['filepass'];
$filetype=GetFiletype($_FILES[$filetf]['name']);//文件范例
$pr=$empire->fetch1("select qaddtran,qaddtransize,qaddtranimgtype from {$dbtbpre}enewspublic limit 1");
if(!$pr['qaddtran'])
{
printerror("CloseQTranPic","",1);//体系封锁上传图片成果
}
if(!strstr($pr['qaddtranimgtype'],"|".$filetype."|"))
{
printerror("NotQTranFiletype",1);//您上传的文件扩展名有误
}
if($_FILES[$filetf]['size']>$pr['qaddtransize']*1024)
{
printerror("TooBigQTranFile",1);//您上传的文件巨细高出体系限定
}
if(!strstr($tranpicturetype,','.$filetype.','))
{
printerror("NotQTranFiletype",1);//您上传的文件扩展名有误
}
$tfr=DoTranFile($_FILES[$filetf]['tmp_name'],$_FILES[$filetf]['name'],$_FILES[$filetf]['type'],$_FILES[$filetf]['size'],$classid);
if($tfr['tran'])
{
//获取参数
$csr=explode(',$cs);
$maxwidth=$csr[0];
$maxheight=$csr[1];
$datu=$csr[2];//是否保存原图判定
$suiyi=$csr[3];//是否加水印判定
include_once(ECMS_PATH.'e/class/gd.php');
$yname=$tfr['yname'];//大图完备地点
//加水印
/*
* 成果:图片加水印 (水印支持图片或笔墨)
* 参数:
* $groundImage 配景图片,即必要加水印的图片,暂只支持GIF,JPG,PNG名目;
* $waterPos 水印位置,有10种状态,0为随机位置;
* 1为顶端居左,2为顶端居中,3为顶端居右;
* 4为中部居左,5为中部居中,6为中部居右;
* 7为底端居左,8为底端居中,9为底端居右;
* $waterImage 图片水印,即作为水印的图片,暂只支持GIF,PNG名目;
* $waterText 笔墨水印,即把笔墨作为为水印,支持ASCII码,不支持中文;
* $textFont 笔墨巨细,值为1、2、3、4或5,默以为5;
* $textColor 笔墨颜色,值为十六进制颜色值,默以为#FF0000(赤色);
*
* 留意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG
* $waterImage 和 $waterText 最好不要同时行使,选个中之一即可,优先行使 $waterImage。
* 当$waterImage有用时,参数$waterString、$stringFont、$stringColor均不见效。
* 加水印后的图片的文件名和 $groundImage 一样。
* $w_pct $w_quality 别离是图片质量,水印透明度
*/
if($suiyi=="yes" and $datu=="yes"){
imageWaterMark($tfr[yname],5,"../data/mark/maskdef.gif","#FF0000","../data/mark/cour.ttf",100,100);//执行加水印
}
$name=$tfr['name'];//缩图完备地点
//天生缩图
$filer=ResizeImage($yname,$name,$maxwidth,$maxheight,$public_r['spickill']);
if($datu=="no"){
DelFiletext($yname);//删除大图
}
if($filer['file'])
{
//写入数据库
$type=1;
$filetime=date("Y-m-d H:i:s");
$filesize=@filesize($filer['file']);
$filename=GetFilename(str_replace(ECMS_PATH,'',$filer['file']));
$adduser='[Member]'.$musername;
$infoid=$isadd==1?0:$id;
//$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]');");插入附件缩图
if($datu=="yes"){
$empire->query("insert into {$dbtbpre}enewsfile(filename,fpath) values('$tfr[filename]','".addslashes(RepPostStr($_POST[title]))."','$public_r[fpath]');");//插入附件原图
}
}
//$value=str_replace($tfr['filename'],$filename,$tfr['url']);//返回缩图地点
$value=$tfr['url'];//返回原图地点
}
else
{
$value='';
}
return $value;
}
在titlepic中添加处理赏罚函数,如图所示: 详细字段处理赏罚函数添加声名如下:user_TranImgAuto##160,120,yes,yes 160 宽度 120 高度 no 代表删除大图保存缩图,同时下面第4个参数无效 yes 代表保存大图和小图 no 代表不加水印 yes 代表加水印
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


