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 相关文章推荐
javascript 简练的几个函数
Aug 29 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
Aug 03 Javascript
解决jquery的.animate()函数在IE6下的问题
Dec 03 Javascript
js获取浏览器基本信息大全
Nov 27 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
Bootstrap导航条的使用和理解3
Dec 14 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
原生js实现3D轮播图
Mar 21 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
Aug 03 Javascript
OpenLayer学习之自定义测量控件
Sep 28 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
改进Django中的表单的简单方法
2015/07/17 Python
Python常见工厂函数用法示例
2018/03/21 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
windows支持哪个版本的python
2020/07/03 Python
详解python with 上下文管理器
2020/09/02 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
幼儿园美术教学反思
2014/01/31 职场文书
财务出纳岗位职责
2014/02/03 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
安全生产月活动总结
2014/05/04 职场文书
个人自荐材料
2014/05/23 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技