Web前端开发之水印、图片验证码


Posted in Javascript onNovember 27, 2016

一、水印

1.画布

System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);

2.创建绘制对象,告诉它往哪张图片上绘制

Graphics g = Graphics.FromImage(img);

3.绘制的内容

string s = www.itnba.com;

4.绘制的字体

Font f = new Font("黑体",130);

5.绘制的画刷

Brush b = new SolidBrush(Color.Red);

6.开始绘制

g.DrawString(s, f, b, 5, 5);

二、图片验证码

Bitmap bit = new Bitmap(90, 40);//画布大小
    Graphics g = Graphics.FromImage(bit);//创建绘制对象,告诉它往哪张图片上绘制
    Random r = new Random();
    string s = "";
    Color color1 = Color.FromArgb(r.Next(155, 255), r.Next(155, 255), r.Next(155, 255));
    g.FillRectangle(new SolidBrush(color1), 0, 0, 90, 40);//画布颜色随机
    for (int i = 0; i < 10; i++)//随机画干扰线
    {
      Color color3 = Color.FromArgb(r.Next(170, 255), r.Next(190, 255), r.Next(170, 255));
      Pen pp = new Pen(new SolidBrush(color3), r.Next(0, 5));
      g.DrawLine(pp, r.Next(0, 90), r.Next(0, 40), r.Next(0, 90), r.Next(0, 40));
    }
    string yan = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";//设置随机的验证码,从里面抽取
    int wei = 0;
    for (int i = 0; i < 4; i++)//取四位验证码,颜色随机
    {
      string m = yan.Substring(r.Next(0, yan.Length), 1);
      s += m;
      Color color2 = Color.FromArgb(r.Next(0, 155), r.Next(0, 155), r.Next(0, 155));
      int w = r.Next(20, 25);
      Font f = new Font("黑体", w);
      SolidBrush b = new SolidBrush(color2);
      g.DrawString(m, f, b, wei, r.Next(0, 10));
      wei += w;
    }
    Session["YZM"] = s;//把验证码保存到session中
    for (int i = 0; i < 251; i++)
    {
      Color color3 = Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255));
      Pen pp = new Pen(new SolidBrush(color3), r.Next(0, 5));
      int a = r.Next(0, 90);
      int b = r.Next(0, 40);
      g.DrawLine(pp, a, b, (a + 1), (b + 1));
    }
    bit.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
    Response.End();

验证码:

<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    <asp:Image ID="Image1" runat="server" ImageUrl="Default2.aspx" />//这里图片路径不是一张图片的话会默认打开

以上所述是小编给大家分享的Web前端开发之水印、图片验证码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一些mootools的学习资源
Feb 07 Javascript
类似天猫商品详情随浏览器移动的示例代码
Feb 27 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
12个非常实用的JavaScript小技巧【推荐】
May 18 Javascript
JavaScript对象数组排序实例方法浅析
Jun 15 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
Jun 22 Javascript
Vue-cli@3.0 插件系统简析
Sep 05 Javascript
javascript实现图片轮播代码
Jul 09 Javascript
Nuxt页面级缓存的实现
Mar 09 Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 Javascript
jQuery时间日期三级联动(推荐)
Nov 27 #Javascript
Jquery 整理元素选取、常用方法一览表
Nov 26 #Javascript
jQuery插件扩展实例【添加回调函数】
Nov 26 #Javascript
JS扩展类,克隆对象与混合类实例分析
Nov 26 #Javascript
JS自定义混合Mixin函数示例
Nov 26 #Javascript
JS克隆,属性,数组,对象,函数实例分析
Nov 26 #Javascript
JS匿名函数类生成方式实例分析
Nov 26 #Javascript
You might like
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
Cookie 小记
2010/04/01 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
Django框架下在视图中使用模版的方法
2015/07/16 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python如何控制进程或者线程的个数
2020/10/16 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
文体活动实施方案
2014/03/27 职场文书
房屋出租协议书
2014/04/10 职场文书
新农村建设典型材料
2014/05/31 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
使用HttpSessionListener监听器实战
2022/03/17 Java/Android