您的位置主页 > 编程专区 > Php > php环境下fckeditor上传图片加水印

php环境下fckeditor上传图片加水印

2009-09-09    文章来源:互联网    浏览次数:1849     分享文章

    文本编辑器大家都会使用,现在流行的有几个版本,我喜欢用fckeditor,所以本人所开发的程式一般用的文本编辑器都是用fckeditor,我的fckeditor是2.6版本的.

水印一般分两种,一种是文字水印,一种是图片水印,我就把两种功能全加上,下面说说修改fckeditor

第一文件修改,editor\dialog\fck_image.html,找到目录下的这个文件

找到<span fckLang="DlgLnkUpload">Upload</span><br /> 

其后加入

 
  1. <input type="checkbox" name="C1" value="ON"><span fckLang="DlgLnkUploadwm">WaterMark</span> 
  2. <input type="radio" value="V1" checked name="R1"><span fckLang="DlgLnkUploadwmtext">Text</span> 
  3. <input type="text" name="T1" size="20"> 
  4. <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>
 
换成 

 
  1. <span id="eUploadMessage">Upload</span> 
  2. <input type="checkbox" name="C1" value="ON">WaterMark 
  3. <input type="radio" value="V1" checked name="R1">Text 
  4. <input type="text" name="T1" size="20"> 
  5. <input type="radio" value="V2" name="R1">Picture 
  6. <br>

 第三文件修改处,editor\filemanager\connectors\php\commands.php,找到这个文件

找到 

 
  1.             $oldumask = umask(0) ;
  2.             chmod$sFilePath$permissions ) ;
  3.             umask( $oldumask ) ;
  4.         }
  5.  
  6.         break ;
  7.     }
  8. }

在其后加入,这里有两处,查找的时候要到最后一处的后面加入以下代码
 

 
  1. // add start
  2. if($_POST['C1']=="ON"){
  3.     $watermark=1;      //是否附加水印(1为加水印,其他为不加水印);
  4. }else{
  5.     $watermark=2;
  6. }
  7.  
  8. if($_POST['R1']=="V1"){
  9.     $watertype=1;      //水印类型(1为文字,2为图片)
  10. }else{
  11.     $watertype=2;
  12. }
  13.  
  14. if($_POST['T1']==""){
  15.     $waterstring="http://php.tmacn.cn"; //水印字符串
  16. }else{
  17.     $waterstring=$_POST['T1'];
  18. }
  19.  
  20. $waterimg="lady.png";    //水印图片
  21.  
  22. if($watermark==1)
  23. {
  24.     $image_size = getimagesize($sFilePath);
  25.     $iinfo=getimagesize($sFilePath,$iinfo);
  26.     $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
  27.     $white=imagecolorallocate($nimage,255,255,255);
  28.     $black=imagecolorallocate($nimage,0,0,0);
  29.     $red=imagecolorallocate($nimage,255,0,0);
  30.     imagefill($nimage,0,0,$white);
  31.     switch ($iinfo[2])
  32.     {
  33.         case 1:
  34.             $simage =imagecreatefromgif($sFilePath);
  35.             break;
  36.         case 2:
  37.             $simage =imagecreatefromjpeg($sFilePath);
  38.             break;
  39.         case 3:
  40.             $simage =imagecreatefrompng($sFilePath);
  41.             break;
  42. //            case 6:
  43. //            $simage =imagecreatefromwbmp($sFilePath);
  44. //            break;
  45.         default:
  46.             die("不支持的文件类型");
  47.             exit;
  48.     }
  49.  
  50.     imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
  51.  
  52.     switch($watertype)
  53.     {
  54.         case 1:   //加水印字符串
  55.             imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
  56.             break;
  57.         case 2:   //加水印图片
  58.             $simage1 =imagecreatefrompng($waterimg);
  59.             imagecopy($nimage,$simage1,10,10,0,0,163,50);
  60.             imagedestroy($simage1);
  61.             break;
  62.     }
  63.  
  64.  
  65.  
  66.     switch ($iinfo[2])
  67.     {
  68.         case 1:
  69.             imagegif($nimage$sFilePath);
  70. //            imagejpeg($nimage, $sFilePath);
  71.             break;
  72.         case 2:
  73.             imagejpeg($nimage$sFilePath);
  74.             break;
  75.         case 3:
  76.             imagepng($nimage$sFilePath);
  77.             break;
  78. //            case 6:
  79. //            imagewbmp($nimage, $sFilePath);
  80. //            //imagejpeg($nimage, $sFilePath);
  81. //            break;
  82.     }
  83.  
  84.     //覆盖原上传文件
  85.     imagedestroy($nimage);
  86.     imagedestroy($simage);
  87. }
  88.  
  89. // 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 : "图片",

第四和每五个文件是语言包文件,我只修改英文和简体中文,其它全清了,没怎么会用到,如果大家用其它语言,可以作相应的修改

文章评论(查看全部)

昵 称 *
电子邮箱 *
网 址      1 + 6 = ?