FCK在线编辑器上传图片加入水印功能
2018-09-06 13:08
在线编辑器Fckeditor,适应多种开发语言环境,功能强大免费开源,能根据自己要求扩展功能。大家可以到官方网站下载最新源代码。
利用编辑器在图片上传时,加入水印功能。
如何在自己的网站中架设FCKeditor编辑器?我就不说了,本文默认你已经架设过并且熟悉FCKeditor内部结构。
在下载FCKeditor编辑器的同时,如果是使用本,还必须下载一个源代码包,在里面有一些功能类,和编译出来的DLL文件,存放在BIN文件中,我们所需要做的就是修改源代码,重新编译源代码,生成新的DLL,在自己的网站中替换就可以了。
我使用的是(源代码版本号是FCKeditor.Net_2.5,编辑器文件版本号为FCKeditor_2.6.3)
用VS2008打开代码包根目录下的FredCK.FCKeditorV2.csproj文件,待文件树展开后,找到FileBrowser文件夹下的FileWorkerBase.cs文件,对其进行修改。
我们需要的是修改FileWorkerBase类中的FileUpload方法函数。
在看代码,先做好准备工作。在自己的网站中建立了fig文件,用于存放网站的一些配置信息,如水印的类型(文字型,图片型),是否需要加水印,文字型水印的文字内容等等和本文无关的重要配置信息。所以在如下带代码中,有一段是用来读取这些配置信息的。
在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, 0, 0, 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), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
g.Dispose();
}
sFileName = System.IO.Path.GetFileNameWithoutExtension(oFile.FileName);
string newPath = sFileName+_+DateTime.Now.ToString(yyMMddhhmmss) + . + sExtension;
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>
整个源码工程包下载如下:
源码工程包
文章标题:FCK在线编辑器上传图片加入水印功能
文章链接:http://soscw.com/index.php/essay/10947.html