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 相关文章推荐
jquery获得option的值和对option进行操作
Dec 13 Javascript
javascript实现随机生成DIV背景色
Jun 20 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
微信小程序 向左滑动删除功能的实现
Mar 10 Javascript
JavaScript数据结构之数组的表示方法示例
Apr 12 Javascript
security.js实现的RSA加密功能示例
Jun 06 Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
VUE.js实现动态设置输入框disabled属性
Oct 28 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
Oct 21 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
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
PHP编写RESTful接口
2016/02/23 PHP
orm获取关联表里的属性值
2016/04/17 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
个人自我鉴定范文
2013/10/04 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
公共场所禁烟标语
2014/06/25 职场文书
网络技术专业求职信
2014/07/13 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL