图片生成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给图片添加水印的更多相关文章

  1. Android 图片添加水印图片或者文字

    给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  2. java实现给图片添加水印

    package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...

  3. java.imageIo给图片添加水印

    最近项目在做一个商城项目, 项目上的图片要添加水印①,添加图片水印;②:添加文字水印; 一下提供下个方法,希望大家可以用得着: package com.blogs.image; import java ...

  4. ASP.NET -- WebForm -- 给图片添加水印标记

    ASP.NET -- WebForm: 给图片添加水印标记 ASP.NET:使用 WebForm(C#) 制作一个简单的为图片添加水印的页面. 1. Test2.aspx文件 <%@ Page ...

  5. JAVA给图片添加水印

    package com.test; import org.junit.Test; import javax.imageio.ImageIO; import java.awt.*; import jav ...

  6. 【Python】给图片添加水印的Python及Golang实现

    前言 不知道大家有没有这样的习惯,一篇比较得意的博客在发表一段时间之后会特别关注,前段时间一篇写到凌晨的博客被 码迷 这个网关爬取之后发表了,因为搜索引擎先爬取码迷的,所以我的博客无法被搜索到,即使直 ...

  7. .net为图片添加水印(转) jpg png和gif格式

    .net为图片添加水印(转) jpg png和gif格式 .net为图片添加水印(转) jpg png和gif格式,转自csdn的hyde82,现在跟大家一起来分享下: 利 用.net中System. ...

  8. iOS边练边学--(Quartz2D)图片添加水印

    一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不 ...

  9. int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件

    int.TryParse非预期执行引发的思考   问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Reque ...

随机推荐

  1. select case when

    SELECT CASE WHEN dc.defect_code_name IS NOT NULL THEN dc.defect_code_name WHEN sf.second_defect_leve ...

  2. 微信浏览器里location.reload问题

    微信浏览器里location.reload问题会导致有时候post数据丢失.建议不要用此方式,尽量ajax方式获取或不要为了获取新的UI而刷新页面 2015-12-26 00:51:34array ( ...

  3. [Hibernate] - Query Select

    测试了常用的一些HQL查询方法,具体HQL的强大可以参考: http://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/queryhql. ...

  4. js判断输入框的范围,并且只能输入数字

    <input type="text" onkeyup="javascript:this.value=this.value.replace(/[^\d]/g,''); ...

  5. CPU GPU天梯图

    2014年2月

  6. transport tablespace将一个表空间下的数据移到另一个表空间

    http://blog.csdn.net/macliukaijie/article/details/8308643 1.创建两个表空间 SQL> create tablespace test1 ...

  7. Android框架

    http://blog.163.com/vicent_zxb/blog/static/1858861312011488262665/ (一)Android系统框架详解 Android采用分层的架构,分 ...

  8. PHP注释有意思的排列

    <?php // // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`---'\___ ...

  9. python3读取文件

    #coding:utf-8 rfile = open('test.txt','r') str=[] for x in rfile: str = x.split(',') for x in str: p ...

  10. PLSQL_性能优化工具系列05_SQL Trace/Event 10046 Trace

    2014-06-25 Created By BaoXinjian