蒋志新.com

专注WEB开发

为FCKeditor的图片上传增加水印功能

为FCKeditor的图片上传增加水印功能

实现功能:

上传图片可以选择是不是要加入水印

可以选择加入文本水印还是图片水印

如果选择文本水印可以自定义输入

如果没有输入则加入默认的文本水印

  1. editor\dialog\fck_image.html
  2.  
  3.  
  4.  
  5. 找到<span fckLang="DlgLnkUpload">Upload</span><br />
  6.  
  7.  
  8.  
  9. 其后加入
  10.  
  11.  
  12.  
  13. <input type="checkbox" name="C1" value="ON"><span fckLang="DlgLnkUploadwm">WaterMark</span>
  14. <input type="radio" value="V1" checked name="R1"><span fckLang="DlgLnkUploadwmtext">Text</span>
  15. <input type="text" name="T1" size="20">
  16. <input type="radio" value="V2" name="R1"><span fckLang="DlgLnkUploadwmpic">Picture</span><br />
  17.  
  18.  
  19.  
  20. editor\filemanager\browser\default\frmupload.html
  21.  
  22.  
  23.  
  24. 找到document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
  25.  
  26.  
  27.  
  28. 换成
  29.  
  30.  
  31.  
  32. document.getElementById('eUploadMessage').innerHTML = 'Upload' ;
  33.  
  34.  
  35.  
  36. 找到<span id="eUploadMessage">Upload a new file in this folder</span><br>
  37.  
  38.  
  39.  
  40. 换成
  41.  
  42.  
  43.  
  44.        <span id="eUploadMessage">Upload</span>
  45.        <input type="checkbox" name="C1" value="ON">WaterMark
  46.        <input type="radio" value="V1" checked name="R1">Text
  47.        <input type="text" name="T1" size="20">
  48.        <input type="radio" value="V2" name="R1">Picture
  49.        <br>
  50.  
  51.  
  52.  
  53. editor\filemanager\browser\default\connectors\php\commands.php
  54.  
  55.  
  56.  
  57. 找到
  58.  
  59.  
  60.  
  61.       break ;
  62.      }
  63.     }
  64. 在其后加入
  65.  
  66.  
  67.  
  68. if($_POST['C1']=="ON")
  69. {
  70. $watermark=1;      //是否附加水印(1为加水印,其他为不加水印);
  71. }
  72. else
  73. {
  74. $watermark=2;
  75. }
  76.  
  77.  
  78.  
  79. if($_POST['R1']=="V1")
  80. {
  81. $watertype=1;      //水印类型(1为文字,2为图片)
  82. }
  83. else
  84. {
  85. $watertype=2;
  86. }
  87.  
  88.  
  89.  
  90. if($_POST['T1']=="")
  91. {
  92. $waterstring="http://blog.jj.xm.fj.cn/"; //水印字符串
  93. }
  94. else
  95. {
  96. $waterstring=$_POST['T1'];
  97. }
  98.  
  99.  
  100.  
  101. $waterimg="xinxin.gif";    //水印图片
  102.  
  103.  
  104.  
  105. if($watermark==1)
  106.     {
  107.         $image_size = getimagesize($sFilePath);
  108.    $iinfo=getimagesize($sFilePath,$iinfo);
  109.         $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
  110.         $white=imagecolorallocate($nimage,255,255,255);
  111.         $black=imagecolorallocate($nimage,0,0,0);
  112.         $red=imagecolorallocate($nimage,255,0,0);
  113.         imagefill($nimage,0,0,$white);
  114.         switch ($iinfo[2])
  115.         {
  116.             case 1:
  117.             $simage =imagecreatefromgif($sFilePath);
  118.             break;
  119.             case 2:
  120.             $simage =imagecreatefromjpeg($sFilePath);
  121.             break;
  122.             case 3:
  123.             $simage =imagecreatefrompng($sFilePath);
  124.             break;
  125. //            case 6:
  126. //            $simage =imagecreatefromwbmp($sFilePath);
  127. //            break;
  128.             default:
  129.             die("不支持的文件类型");
  130.             exit;
  131.         }
  132.  
  133.  
  134.  
  135.         imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
  136.         imagefilledrectangle($nimage,1,$image_size[1]-15,0,$image_size[1],$white);
  137.  
  138.  
  139.  
  140.         switch($watertype)
  141.         {
  142.             case 1:   //加水印字符串
  143.             imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
  144.             break;
  145.             case 2:   //加水印图片
  146.             $simage1 =imagecreatefromgif($waterimg);
  147.             imagecopy($nimage,$simage1,0,0,0,0,85,30);
  148.             imagedestroy($simage1);
  149.             break;
  150.         }
  151.  
  152.  
  153.  
  154.         switch ($iinfo[2])
  155.         {
  156.             case 1:
  157.             imagegif($nimage, $sFilePath);
  158. //            imagejpeg($nimage, $sFilePath);
  159.             break;
  160.             case 2:
  161.             imagejpeg($nimage, $sFilePath);
  162.             break;
  163.             case 3:
  164.             imagepng($nimage, $sFilePath);
  165.             break;
  166. //            case 6:
  167. //            imagewbmp($nimage, $sFilePath);
  168. //            //imagejpeg($nimage, $sFilePath);
  169. //            break;
  170.         }
  171.  
  172.  
  173.  
  174.         //覆盖原上传文件
  175.         imagedestroy($nimage);
  176.         imagedestroy($simage);
  177.     }
  178.  
  179.  
  180.  
  181. 将xinxin.gif水印文件COPY到这个目录
  182.  
  183.  
  184.  
  185. editor\filemanager\upload\php\upload.php
  186.  
  187.  
  188.  
  189. 找到
  190.  
  191.  
  192.  
  193.    break ;
  194. }
  195. }
  196.  
  197.  
  198.  
  199. 其后加入
  200.  
  201.  
  202.  
  203. if($_POST['C1']=="ON")
  204. {
  205. $watermark=1;      //是否附加水印(1为加水印,其他为不加水印);
  206. }
  207. else
  208. {
  209. $watermark=2;
  210. }
  211.  
  212.  
  213.  
  214. if($_POST['R1']=="V1")
  215. {
  216. $watertype=1;      //水印类型(1为文字,2为图片)
  217. }
  218. else
  219. {
  220. $watertype=2;
  221. }
  222.  
  223.  
  224.  
  225. if($_POST['T1']=="")
  226. {
  227. $waterstring="http://blog.jj.xm.fj.cn/"; //水印字符串
  228. }
  229. else
  230. {
  231. $waterstring=$_POST['T1'];
  232. }
  233.  
  234.  
  235.  
  236. $waterimg="xinxin.gif";    //水印图片
  237.  
  238.  
  239.  
  240. if($watermark==1)
  241.     {
  242.         $image_size = getimagesize($sFilePath);
  243.    $iinfo=getimagesize($sFilePath,$iinfo);
  244.         $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
  245.         $white=imagecolorallocate($nimage,255,255,255);
  246.         $black=imagecolorallocate($nimage,0,0,0);
  247.         $red=imagecolorallocate($nimage,255,0,0);
  248.         imagefill($nimage,0,0,$white);
  249.         switch ($iinfo[2])
  250.         {
  251.             case 1:
  252.             $simage =imagecreatefromgif($sFilePath);
  253.             break;
  254.             case 2:
  255.             $simage =imagecreatefromjpeg($sFilePath);
  256.             break;
  257.             case 3:
  258.             $simage =imagecreatefrompng($sFilePath);
  259.             break;
  260. //            case 6:
  261. //            $simage =imagecreatefromwbmp($sFilePath);
  262. //            break;
  263.             default:
  264.             die("不支持的文件类型");
  265.             exit;
  266.         }
  267.  
  268.  
  269.  
  270.         imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
  271.         imagefilledrectangle($nimage,1,$image_size[1]-15,0,$image_size[1],$white);
  272.  
  273.  
  274.  
  275.         switch($watertype)
  276.         {
  277.             case 1:   //加水印字符串
  278.             imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
  279.             break;
  280.             case 2:   //加水印图片
  281.             $simage1 =imagecreatefromgif($waterimg);
  282.             imagecopy($nimage,$simage1,0,0,0,0,85,30);
  283.             imagedestroy($simage1);
  284.             break;
  285.         }
  286.  
  287.  
  288.  
  289.         switch ($iinfo[2])
  290.         {
  291.             case 1:
  292.             imagegif($nimage, $sFilePath);
  293. //            imagejpeg($nimage, $sFilePath);
  294.             break;
  295.             case 2:
  296.             imagejpeg($nimage, $sFilePath);
  297.             break;
  298.             case 3:
  299.             imagepng($nimage, $sFilePath);
  300.             break;
  301. //            case 6:
  302. //            imagewbmp($nimage, $sFilePath);
  303. //            //imagejpeg($nimage, $sFilePath);
  304. //            break;
  305.         }
  306.  
  307.  
  308.  
  309.         //覆盖原上传文件
  310.         imagedestroy($nimage);
  311.         imagedestroy($simage);
  312.     }
  313.  
  314.  
  315.  
  316. 将水印文件XINXIN.GIF COPY到这个目录
  317.  
  318.  
  319.  
  320. editor\lang\en.js
  321.  
  322.  
  323.  
  324. 找到
  325.  
  326.  
  327.  
  328. DlgLnkBtnUpload   : "Send it to the Server",
  329.  
  330.  
  331.  
  332. 其后加入
  333.  
  334.  
  335.  
  336. DlgLnkUploadwm   : "WaterMark",
  337. DlgLnkUploadwmtext : "Text",
  338. DlgLnkUploadwmpic : "Picture",
  339.  
  340.  
  341.  
  342. editor\lang\zh-cn.js
  343.  
  344.  
  345.  
  346. 找到
  347.  
  348.  
  349.  
  350. DlgLnkBtnUpload   : "发送到服务器上",
  351.  
  352.  
  353.  
  354. 其后加入
  355.  
  356.  
  357.  
  358. DlgLnkUploadwm   : "是否加水印",
  359. DlgLnkUploadwmtext : "文本",
  360. DlgLnkUploadwmpic : "图片",

相关日志

Leave a comment

您必须 登录 后才能发表留言。

无分类


无分类


无分类


无分类


无分类

无分类


无分类


无分类


无分类


无分类


无分类

无分类