php环境下fckeditor上传图片加水印
文本编辑器大家都会使用,现在流行的有几个版本,我喜欢用fckeditor,所以本人所开发的程式一般用的文本编辑器都是用fckeditor,我的fckeditor是2.6版本的.
水印一般分两种,一种是文字水印,一种是图片水印,我就把两种功能全加上,下面说说修改fckeditor
第一文件修改,editor\dialog\fck_image.html,找到目录下的这个文件
找到<span fckLang="DlgLnkUpload">Upload</span><br />
其后加入
- <input type="checkbox" name="C1" value="ON"><span fckLang="DlgLnkUploadwm">WaterMark</span>
- <input type="radio" value="V1" checked name="R1"><span fckLang="DlgLnkUploadwmtext">Text</span>
- <input type="text" name="T1" size="20">
- <input type="radio" value="V2" name="R1"><span fckLang="DlgLnkUploadwmpic">Picture</span><br />
第二文件修改,editor\filemanager\browser\default\frmupload.html,找到目录下这个文件
找到document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
换成
document.getElementById('eUploadMessage').innerHTML = 'Upload' ;
找到<span id="eUploadMessage">Upload a new file in this folder</span><br>
换成
- <span id="eUploadMessage">Upload</span>
- <input type="checkbox" name="C1" value="ON">WaterMark
- <input type="radio" value="V1" checked name="R1">Text
- <input type="text" name="T1" size="20">
- <input type="radio" value="V2" name="R1">Picture
- <br>
第三文件修改处,editor\filemanager\connectors\php\commands.php,找到这个文件
找到
- $oldumask = umask(0) ;
- chmod( $sFilePath, $permissions ) ;
- umask( $oldumask ) ;
- }
- break ;
- }
- }
在其后加入,这里有两处,查找的时候要到最后一处的后面加入以下代码
- // add start
- if($_POST['C1']=="ON"){
- $watermark=1; //是否附加水印(1为加水印,其他为不加水印);
- }else{
- $watermark=2;
- }
- if($_POST['R1']=="V1"){
- $watertype=1; //水印类型(1为文字,2为图片)
- }else{
- $watertype=2;
- }
- if($_POST['T1']==""){
- $waterstring="http://php.tmacn.cn"; //水印字符串
- }else{
- $waterstring=$_POST['T1'];
- }
- $waterimg="lady.png"; //水印图片
- if($watermark==1)
- {
- $image_size = getimagesize($sFilePath);
- $iinfo=getimagesize($sFilePath,$iinfo);
- $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
- $white=imagecolorallocate($nimage,255,255,255);
- $black=imagecolorallocate($nimage,0,0,0);
- $red=imagecolorallocate($nimage,255,0,0);
- imagefill($nimage,0,0,$white);
- switch ($iinfo[2])
- {
- case 1:
- $simage =imagecreatefromgif($sFilePath);
- break;
- case 2:
- $simage =imagecreatefromjpeg($sFilePath);
- break;
- case 3:
- $simage =imagecreatefrompng($sFilePath);
- break;
- // case 6:
- // $simage =imagecreatefromwbmp($sFilePath);
- // break;
- default:
- die("不支持的文件类型");
- exit;
- }
- imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
- switch($watertype)
- {
- case 1: //加水印字符串
- imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
- break;
- case 2: //加水印图片
- $simage1 =imagecreatefrompng($waterimg);
- imagecopy($nimage,$simage1,10,10,0,0,163,50);
- imagedestroy($simage1);
- break;
- }
- switch ($iinfo[2])
- {
- case 1:
- imagegif($nimage, $sFilePath);
- // imagejpeg($nimage, $sFilePath);
- break;
- case 2:
- imagejpeg($nimage, $sFilePath);
- break;
- case 3:
- imagepng($nimage, $sFilePath);
- break;
- // case 6:
- // imagewbmp($nimage, $sFilePath);
- // //imagejpeg($nimage, $sFilePath);
- // break;
- }
- //覆盖原上传文件
- imagedestroy($nimage);
- imagedestroy($simage);
- }
- // add end
将lady.png水印文件COPY到这个目录
这个图片文件到时改成自己的水印
第四个修改的文件:editor\lang\en.js,找到这个文件
找到
DlgLnkBtnUpload : "Send it to the Server",
其后加入
DlgLnkUploadwm : "WaterMark",
DlgLnkUploadwmtext : "Text",
DlgLnkUploadwmpic : "Picture",
第五个修改的文件:editor\lang\zh-cn.js,找到这个文件
找到
DlgLnkBtnUpload : "发送到服务器上",
其后加入
DlgLnkUploadwm : "是否加水印",
DlgLnkUploadwmtext : "文本",
DlgLnkUploadwmpic : "图片",
第四和每五个文件是语言包文件,我只修改英文和简体中文,其它全清了,没怎么会用到,如果大家用其它语言,可以作相应的修改

文章评论(查看全部)