在MVC3或asp.net中修改KindEditor实现上传图片时添加水印

本文介绍如何在KindEditor中为上传的图片添加文字水印。主要涉及image.js和upload_json.ashx两个文件的修改,包括添加水印输入框及实现水印逻辑。

主要修改两个文件:image.js和upload_json.ashx文件。

一、修改image.js文件

打开kindeditor/plugins/image目录下的image.js文件,找到

'<input type="button" class="ke-upload-button" value="' + lang.upload + '" />',

在这行代码下面添加

 '<label style="width:60px;">添加水印</label>',
            '<input type="text" name="water" value="请输入水印文字"/>',

二、修改upload_json.ashx文件。

打开kindeditor/asp.net目录下的upload_json.ashx文件,

找到

String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
        String filePath = dirPath + newFileName;
        imgFile.SaveAs(filePath);
        String fileUrl = saveUrl + newFileName;

这个地方,将之替换成

String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo);
        String filePath = dirPath + newFileName + fileExt;
        imgFile.SaveAs(filePath);       
        String fileUrl = saveUrl + newFileName + fileExt;
        //添加文字水印
        Image image = System.Drawing.Image.FromFile(filePath);
        Graphics g = Graphics.FromImage(image);
        g.DrawImage(image, 0, 0, image.Width, image.Height);
        Font f = new Font("Verdana", 32);
        Brush b = new SolidBrush(Color.Red);
        string addText = context.Request.Form["water"];
        g.DrawString(addText, f, b, 10, 10);
        g.Dispose();
        //保存加水印过后的图片,删除原始图片
        string newPath = dirPath + newFileName + "_new" + fileExt;
        image.Save(newPath);
        image.Dispose();
        if (File.Exists(filePath))
        {
            File.Delete(filePath);
        }
        fileUrl = saveUrl + newFileName + "_new" + fileExt;

这样就可以了。水印文字的颜色可由Color.Red这个地方来设置,位置可由g.DrawString(addText, f, b, 10, 10)这行代码的后面两个参数来设置。

 

转载于:https://www.cnblogs.com/denny402/p/3204296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值