• FCK在线编辑器上传图片加入水印功能


    在线编辑器Fckeditor优点很多,如:适应多种开发语言环境,功能强大免费开源,能根据自己要求扩展功能。

    大家可以到官方网站下载最新源代码。现在最新官方消息FCKEditor已经改名CKEditor了。最新版本是CKEditor.NET 3.5.3

    本文要实现功能是:利用编辑器在图片上传时,加入水印功能。

    如何在自己的网站中架设FCKeditor编辑器?我就不说了,本文默认你已经架设过并且熟悉FCKeditor内部结构。
    在下载FCKeditor编辑器的同时,如果是使用.net版本,还必须下载一个源代码包,在里面有一些功能类,和编译出来的DLL文件,存放在BIN文件中,我们所需要做的就是修改源代码,重新编译源代码,生成新的DLL,在自己的网站中替换就可以了。
    我使用的是(源代码版本号是FCKeditor.Net_2.5,编辑器文件版本号为FCKeditor_2.6.3)
    用VS2008打开代码包根目录下的FredCK.FCKeditorV2.csproj文件,待文件树展开后,找到FileBrowser文件夹下的FileWorkerBase.cs文件,对其进行修改。
    我们需要的是修改FileWorkerBase类中的FileUpload方法函数。
    在看代码之前,先做好准备工作。

    在自己的网站中建立了watermark.config文件,用于存放网站的一些配置信息,如水印的类型(文字型,图片型),是否需要加水印,文字型水印的文字内容等等和本文无关的重要配置信息。

    所以在如下代码中,有一段是用来读取这些配置信息的。
    在FileUpload方法中找到oFile.SaveAs( sFilePath );语句。在其后加入

    try
    {
         DataSet configds 
    = new DataSet();
         configds.ReadXml(Server.MapPath(
    "~/config/watermark.config"));
         DataTable configdt 
    = configds.Tables[0];
         
    if (configdt.Rows[0]["Watermarkstatus"].ToString() == "1")
         {
             Image img 
    = Image.FromFile(sFilePath);
             
    if (configdt.Rows[0]["Watermarktype"].ToString() == "0")
             {
                 Graphics g 
    = Graphics.FromImage(img);
                 g.DrawImage(img, 
    00, img.Width, img.Height);
                 Font f 
    = new Font("华文行楷"40);
                 Brush b 
    = new SolidBrush(Color.White);
                 
    string addText = configdt.Rows[0]["Watermarktext"].ToString();
                 g.DrawString(addText, f, b, img.Width 
    - 174, img.Height - 40);
                 g.Dispose();
             }
             
    if (configdt.Rows[0]["Watermarktype"].ToString() == "1")
             {
                 System.Drawing.Image copyImage 
    = System.Drawing.Image.FromFile(Server.MapPath("~/watermark/watermark.gif"));
                 Graphics g 
    = Graphics.FromImage(img);
                 g.DrawImage(copyImage, 
    new Rectangle(img.Width - copyImage.Width, img.Height - copyImage.Height, copyImage.Width, copyImage.Height), 00, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
                 g.Dispose();
             }
             sFileName 
    = System.IO.Path.GetFileNameWithoutExtension(oFile.FileName);
               
    string newPath = sFileName+"_"+DateTime.Now.ToString("yyMMddhhmmss"+ "." + sExtension;
               newPath 
    = System.IO.Path.Combine(sServerDir, newPath);
               sFileName 
    = newPath;
               img.Save(newPath);
               img.Dispose();
              
    if (File.Exists(sFilePath))
              {
                   File.Delete(sFilePath);
              }
           }
         }
    catch
    {
          
    this.SendFileUploadResponse(808, isQuickUpload);
    }

     

    请注意,一定要在自己的站点根目录下新建config文件夹,将watermark.config存放其中,

     watermark.config中必须出现的几个字段如下:
      <Watermarkstatus>0</Watermarkstatus><!--0:默认加;1:不加-->
      <Watermarktype>1</Watermarktype><!--0:文字型水印;1:图片型水印-->
      <Watermarktext>ABCD</Watermarktext>
      <Watermarkpic>watermark.gif</Watermarkpic>

    整个源码工程包下载如下:

    /Files/cgli/FredCK.FCKeditorV2.rar

  • 相关阅读:
    使用VC++生成调试信息
    在Xp home上安装Rose 2003
    SkyDrive注册方法
    vsftpd同时使用系统用户和虚拟用户验证
    如何查看linux系统版本
    在RedHat AS中安装SVN
    Vnc & Gdm
    (转)如何:在设备上安装 SQL Server Compact 3.5
    java培训学习笔记一
    因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项
  • 原文地址:https://www.cnblogs.com/cgli/p/2031713.html
Copyright © 2020-2023  润新知