图片生成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. android操作sdcard中的多媒体文件(二)——音乐列表的更新

    android操作sdcard中的多媒体文件(二)——音乐列表的更新 原文地址 在上一篇随笔中,我介绍了如何在程序中查询sdcard内的多媒体文件,并且显示到播放列表中,但是,如果在sdcard内删除 ...

  2. Android 抽屉类SlidingDrawer的使用

     比较简单,设置好SlidingDrawer控件的handle和content属性就可以了.  android:content="@+id/content"  android:ha ...

  3. [转][工地][存]Oracle触发器死锁问题解决

    摘自http://blog.itpub.net/12932950/viewspace-607691/ 这两天一直在因为系统初期设计原因导致的一个触发器问题.问题如下:有表T,有客户编号.账户编号及地址 ...

  4. LeetCode "Count of Smaller Number After Self"

    Almost identical to LintCode "Count of Smaller Number before Self". Corner case needs to b ...

  5. TX Textcontrol 使用总结六——常用属性设置

    1.字体设置 Tx textcontrol字体设置以版本22为例,直接设置FontSize =int,字体大小将小于正常其他控件字体设置.应做如下处理(仅供参考) this.textControl1. ...

  6. golang rbac框架

    在 https://github.com/mikespook/gorbac/tree/v1.0 github上新的版本是开发板,得用这里的老版 demo package main import ( & ...

  7. activiti自定义流程之自定义表单(二):创建表单

    注:环境配置:activiti自定义流程之自定义表单(一):环境配置 在上一节自定义表单环境搭建好以后,我就正式开始尝试自己创建表单,在后台的处理就比较常规,主要是针对ueditor插件的功能在前端进 ...

  8. Java AES加密

    Java AES 加密 加密 /** * * @description 加密 * * @param content 需要加密的内容 * @param password 加密密码 * @return * ...

  9. TFS Build Error: CSC : fatal error CS0042: Unexpected error creating debug information file 'xxxx.PDB'

    CSC : fatal error CS0042: Unexpected error creating debug information file 'xxxx.PDB' -- 'c:\Builds\ ...

  10. 将List<Map>中的datas转换为json格式写入文件

    private static boolean writeToTextFileByJson(List<Map<String, Object>> datas, String tit ...