C#或ASP.NET的简单绘图

 public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "img/JPEG";
using(System.Drawing.Bitmap bm=new System.Drawing.Bitmap(,))//规定大小
{
using(System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(bm))//图像化
{
g.DrawString("腾讯QQ",new Font("楷体",),Brushes.Green,new PointF(,));
g.DrawEllipse(Pens.AliceBlue,new Rectangle(,,,));
bm.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);//保存到网页
}
}

下面这个例子是一个验证码问题

先是example.asph文件

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> <div><img src="AddCalation.ashx"onclick="this.src='AddCalation.ashx?aaa='+new Date()" /></div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> </div>
</form>
</body>
</html>

然后是example.aspx.cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class TestCode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
string code = Session["test"].ToString();
if(code==TextBox1.Text)
{
Response.Write("匹配正确");
}
else
{
Response.Write("匹配错误");
}
}
}

再是验证码图片创造文件example.ashx

 <%@ WebHandler Language="C#" Class="AddCalation" %>

 using System;
using System.Web;
using System.Drawing;
public class AddCalation : IHttpHandler,System.Web.SessionState.IRequiresSessionState{ public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "img/JPEG";
using(System.Drawing.Bitmap bm=new System.Drawing.Bitmap(150,60))
{
using(System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(bm))
{
Random rand = new Random();
int code = rand.Next();
string testcode=code.ToString().Substring(0,4);
HttpContext.Current.Session["test"] = testcode;
g.DrawString(testcode,new Font("楷体",40),Brushes.Green,new PointF(10,5)); bm.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
}
} } public bool IsReusable {
get {
return false;
}
} }

执行效果如下图

C#或ASP.NET绘图初探的更多相关文章

  1. Asp.net Core 初探(发布和部署Linux)

    前言 俗话说三天不学习,赶不上刘少奇.Asp.net Core更新这么长时间一直观望,周末帝都小雨,宅在家看了下Core Web App,顺便搭建了个HelloWorld环境来尝尝鲜,第一次看到.Ne ...

  2. x01.TodoList:Asp.Net 5 初探

    ASP.NET 5 是比较新的,除了汤姆的博文,学习资料并不多.而学习没有例子上手,是比较痛苦的. 1.运行 vs2015,新建项目,选择 Asp.Net 5 WebApp 模板,默认运行即可.对照汤 ...

  3. Asp.Net Core 初探 (三)

    昨天失败的生产环境部署就先放着,明天再解决! 今天利用中午的空余时间看了一下Asp.net core 的Areas . 相对于Asp.net MVC5 以及之前的版本,asp.net core 的Ar ...

  4. ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探

    前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...

  5. asp.net webapi初探(一)

    本人对webapi尚没有深入研究,初次接触发现了在数据请求时的几点现象. 先切入代码 1.如果action中开头带有Get默认就是get方式,不带Get默认就是post方式 public string ...

  6. asp.net core 初探 二

    今天用@宇内流云大大的jexus 体验一下生产环境的发布,运行. 生产环境: centos 7 jexus 5.8.1 独立版 包含了mono (mono安装真心痛苦……) 开发环境就是昨天的Ubun ...

  7. Asp.net core 初探

    写这篇博客的主要目的是加深自己的印象. 后续每天都会写一些自己的学习心得. Ubuntu :16.04 桌面版 .net core : dotnet-dev-1.0.0-preview2-003121 ...

  8. MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式

    MVC的验证(模型注解和非侵入式脚本的结合使用)   @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...

  9. 初探Asp.net5

    说到Asp.net 5,确实让我有种激动的心情,微软的全力大招在一波一波的发出,也在牵动着每一个程序员的心.作为你们中的一员,在每次看到微软的新技术时,都满怀一种激动的心情,也同时希望微软在开源和跨平 ...

随机推荐

  1. Django基本目录详解

    1.app是自己建立的一个存放app的文件夹,因为项目大了之后会存在很多app(pycharm生成app方法 Tools-Run manage.py Task-输入startapp app名称) 2. ...

  2. codeforces 319B Psychos in a Line(模拟)

    There are n psychos standing in a line. Each psycho is assigned a unique integer from 1 to n. At eac ...

  3. c#基类继承

    [ 塔 · 第 三 条 约 定 ] 编写一个多边形作为基类(成员:定点数)抽象方法(子类实现):体积.边长 正三角形类:成员 边长 长方形类:成员 长宽 using System; using Sys ...

  4. Java之comparable接口

    comparable 接口: 1. 问题:java.util.Collections 类中的方法 Collections.sort(List list) 是根据什么确定容器中对象的“大小”顺序的? 2 ...

  5. windows批处理学习(for和字符串)---03

    [1]for命令简介 先把for循环与for命令类比一下,这样学习理解快. for 循环语句,一般格式如下: 1 for (表达式1;表达式2;表达式3) 2 { 3 循环体; 4 } 1. 表达式1 ...

  6. Redis集群分布(Windows版)

    Redis系列 作者Mr.Chen,转载请注明博客出处:http://www.cnblogs.com/cjh-notes/ 第一步:下载安装redis windows版的下载地址:https://gi ...

  7. ErrorUnable to tunnel through proxy. Proxy returns HTTP1.1 400 Bad Reques

    导入项目的时候,一般会出现这种错误,因为我们的gradle版本,不对,所以默认AS导入后,回去下载你需要的gradle,所以很慢, 先打开:项目路径底下的\gradle\wrapper\gradle- ...

  8. JAVA IDE IntelliJ IDEA使用简介(三)—之你不能忘记的快捷键

    IDEA有许多的快捷键来帮助你更便捷的编写代码,以下列出的快捷键(默认情况下,你还没有定制你的快捷键)是工作中经常需要使用到的,请牢记 快捷键 描述 备注 Alt+F1 视图切换 切换当前工作文件的视 ...

  9. [计算机网络] TCP的拥塞控制

    引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止过多 ...

  10. linux 环境变量配置(node)

    控制台 env 查看当前的环境变量配置 修改/etc/profile文件,在末尾添加以下内容 export NODE_HOME=/usr/local/node //Node所在路径 export PA ...