通过WebHandler给图片添加水印
图片生成webhandler水印,主要把水印的信息和位置post到webhandler去处理,返回后再div上显示
前台传递水印的信息和位置:


/***********提取DIV属性****************/
var offsetLeft = ;
var offsetTop = ;
function exc() {
offsetLeft= document.getElementById("d_panel").offsetLeft;
offsetTop = document.getElementById("d_panel").offsetTop;
var trlist = getElementsByName_iefix("div", "ref","dyq");
var params = "c=1";
for (var i = ; trlist.length > i; i++) {
params += trlist[i];
}
toPost("Create.ashx", params);
}
//获取查找DIV对象
function getElementsByName_iefix(tag, name,val) {
var elem = document.getElementsByTagName(tag);
var arr = new Array();
for (i = ,iarr = ; i < elem.length; i++) {
att = elem[i].getAttribute(name);
if (att == val) {
arr[iarr] = extraction(elem[i], iarr++);
}
}
return arr;
}
//获取DIV属性 传入数据对象
function extraction(obj, i) {
var strpage = new StringBuilder();
var color=obj.style.color.toString();
strpage.append("&color_" + i + "=" + color.colorRgb());
strpage.append("&fontsize_" + i + "=" + obj.style.fontSize);
strpage.append("&offsetleft_" + i + "=" + (obj.offsetLeft - offsetLeft-));//坐标误差 -3 可以删除 可能是边框造成
strpage.append("&offsettop_" + i + "=" + (obj.offsetTop - offsetTop - )); //坐标误差-1 可以删除 可能是边框造成
strpage.append("&txt_" + i + "=" + obj.innerHTML);
return strpage.tostring()
} /**********POST************/
function toPost(url, params) { createXMLHttpRequest();
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function () { ShowResult(); };
xmlHttp.send(params); }
//回调方法
function ShowResult() {
if (xmlHttp.readyState == || xmlHttp.readyState == || xmlHttp.readyState == ) {
} else if (xmlHttp.readyState == ) {
if (xmlHttp.responseText == "f") {
alert("图片生成失败");
} else {
document.getElementById("d_out").innerHTML = "<img src='" + xmlHttp.responseText + "' />"; }
}
} var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
后台webhandler的处理:


public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string _msg = "f";
NameValueCollection nvc = context.Request.Form;
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(context.Server.MapPath("4b7a8989jw6df6jumd2z8j.jpg"));
List<M_Div> _mlist = new List<M_Div>();
for (int i = ; nvc["color_" + i] != null; i++)
{
M_Div _M_Div = new M_Div();
_M_Div.Txt = nvc["txt_" + i].ToString().Replace("%20", "");
_M_Div.X = nvc["offsetleft_" + i].ToString().Length != ? Convert.ToInt32(nvc["offsetleft_" + i].ToString()) : ;
_M_Div.Y = nvc["offsettop_" + i].ToString().Length != ? Convert.ToInt32(nvc["offsettop_" + i].ToString()) : ;
string Fontsize = nvc["fontsize_" + i].ToString().Replace("px", "");
_M_Div.Fontsize = Fontsize.Length != ? (Convert.ToInt32(Fontsize)) : ;
_M_Div.Color = Utility.StringToRgb(nvc["color_" + i].ToString().Replace("%20", ""));
_mlist.Add(_M_Div);
}
if (_mlist.Count != )
{
new B_Image().operate(originalImage, _mlist);
_msg = "images/" + DateTime.Now.Ticks + ".jpg";
Utility.Save(originalImage, context.Server.MapPath(_msg));
}
context.Response.Write(_msg);
}
源代码在http://download.csdn.net/detail/yekeyishuo/6424051
通过WebHandler给图片添加水印的更多相关文章
- Android 图片添加水印图片或者文字
给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- java实现给图片添加水印
package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...
- java.imageIo给图片添加水印
最近项目在做一个商城项目, 项目上的图片要添加水印①,添加图片水印;②:添加文字水印; 一下提供下个方法,希望大家可以用得着: package com.blogs.image; import java ...
- ASP.NET -- WebForm -- 给图片添加水印标记
ASP.NET -- WebForm: 给图片添加水印标记 ASP.NET:使用 WebForm(C#) 制作一个简单的为图片添加水印的页面. 1. Test2.aspx文件 <%@ Page ...
- JAVA给图片添加水印
package com.test; import org.junit.Test; import javax.imageio.ImageIO; import java.awt.*; import jav ...
- 【Python】给图片添加水印的Python及Golang实现
前言 不知道大家有没有这样的习惯,一篇比较得意的博客在发表一段时间之后会特别关注,前段时间一篇写到凌晨的博客被 码迷 这个网关爬取之后发表了,因为搜索引擎先爬取码迷的,所以我的博客无法被搜索到,即使直 ...
- .net为图片添加水印(转) jpg png和gif格式
.net为图片添加水印(转) jpg png和gif格式 .net为图片添加水印(转) jpg png和gif格式,转自csdn的hyde82,现在跟大家一起来分享下: 利 用.net中System. ...
- iOS边练边学--(Quartz2D)图片添加水印
一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不 ...
- int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件
int.TryParse非预期执行引发的思考 问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Reque ...
随机推荐
- Jenkins: 基础篇(环境配置)
自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...
- ASP.NET环境下配置FCKEditor并上传图片及其它文件
文章转自:http://blog.sina.com.cn/s/blog_568e66230100hy6a.html FCKEditor于2009年被更名为新一代的CKEditor和CKFinder,见 ...
- PHPNow升级PHP版本为5.3.5的方法
在WIN上有时候需要测试一些PHP程序,又不会自行独立配置环境,那么PHPNow是非常好的选择,这篇文章主要为大家分享下如果将phpnow的php版本升级为5.3.5 在WIN上有时候需要测试一些 ...
- (转)Edge实现NodeJS与.NET互操作(包括UI界面示例)
本文转载自:http://blog.csdn.net/kimmking/article/details/42708049 1. Edge是什么 Edge是一种在进程内实现NodeJS与.NET互操作 ...
- IntelliJ IDEA安装AngularJS插件
Settings→Plugins→Install JetBrains plugins... 输入an后选择AngularJS,然后点击Install进行安装 按照提示重启IDEA 下图为插件管理窗口, ...
- poj1260 pearls
题目大意:珠宝店有许多珠宝,你需要每种珠宝各买一定的数目,各种珠宝的价格是不一样的,每种珠宝买的时候都必须多付10颗该珠宝的钱,但一种珠宝可以用比它更贵的珠宝来代替,所以有时候用更贵的珠宝来充数可能更 ...
- rsync 无密码 传输
1.通过ssh执行rsync(需要密码) 通过ssh帐户(需要密码)执行rsync,将文件同步镜像到远程服务器.下面这个例子将本地的/home/ramesh同步到远程目录/backup/ramesh( ...
- C#属性访问器
属性的访问器包含与获取或设置属性有关的可执行语句.访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含.声明采用下列形式之一:get {}set {} get 访问器get 访问器体与 ...
- UVa 10801 - Lift Hopping(dijkstra最短路)
根据题意,以每一层楼为顶点,每个电梯可以到达的两层楼之间的秒数为每一条边的权值,以此构建一个无向图.然后利用dijkstra求出最短的时间,注意每次换乘电梯需要等待60s(因为同一个电梯上的楼层是相互 ...
- “/wechat”应用程序中的服务器错误。
对路径“C:\inetpub\wwwroot3\wechat\img\qrcode\”的访问被拒绝. “/wechat”应用程序中的服务器错误. 对路径“C:\inetpub\wwwroot3\wec ...