通过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 ...
随机推荐
- JavaScript判断字符串能否转化为数字
判断一个字符串能否转化为数字 我们常常使用parseInt函数. 不过该函数的适用范围是很小的. 一般说来对于 如下类似 var myStr = "123hello"; 使用par ...
- [oracle] ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
ORACLE 32位数据库正常安装,sqlplus 正常连接数据库但是PL/SQL developer 64位却报出这个错误. 第一反应是缺少32位客户端.下载安装,配置完成后如图所示: 还是报这个错 ...
- jquery.find()
http://www.365mini.com/page/jquery-find.htm
- session.flush加锁测试.
测试结论 1 session.flush (用于提交SQL执行计划. hibernate会给数据库加锁, 执行效果等同于select for update的锁级别.如果是oracle 默认为lock ...
- grep,sed,cut,awk,join个性特点
grep 从数据文件中查询/提取出含有特定关键字的行. sed 主要用于对数据文件中特定字符串的替换处理. cut 按照指定的分隔符(-d)剪下选定的列(-f num)或者字符(-c)的内容. awk ...
- android学习笔记七——控件(DatePicker、TimePicker、ProgressBar)
DatePicker.TimePicker ==> DatePicker,用于选择日期 TimePicker,用于选择时间 两者均派生与FrameLayout,两者在FrameLayout的基础 ...
- 【转】SQL SERVER 存储过程中变量的作用域
今天遇到一个很有趣的事情,以前没有注意过,所以记下来. 先来看例子. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE ...
- [物理学与PDEs]第1章习题参考解答
[物理学与PDEs]第1章习题1 无限长直线的电场强度与电势 [物理学与PDEs]第1章习题2 均匀带电球面的电场强度与电势 [物理学与PDEs]第1章习题3 常场强下电势的定解问题 [物理学与PDE ...
- SmtpClient 类
1, SmtpClient 类 http://www.cnblogs.com/panlijiao/archive/2012/11/14/2773836.html
- header('Content-type:text/html;charset = utf-8');出现中文乱码
header('Content-type:text/html;charset = utf-8'); "="两旁不能留空格,必须紧密连写,否则出现乱码;