1.向服务器请求返回图片,浏览器是不知道服务上有这个图片的存在的,只是发出请求,接收请求,显示图片

string path = context.Server.MapPath("~/1.jpg");//获取服务器上的图片并转换为本地路径
//显示到输出流中
using (Stream instream = File.OpenRead(path))
{
instream.CopyTo(context.Response.OutputStream);
}

2.动态的向服务器创建一张jpeg图片:

string name = context.Request["name"];//name的值可以动态的输入
using (Bitmap bmp = new Bitmap(, ))//创建一个尺寸为500*500的内存图片
using (Graphics g = Graphics.FromImage(bmp))//得到图片的画布
{
g.DrawString(name, new Font(FontFamily.GenericSerif, ), Brushes.Red, , );//Font应该被释放
g.DrawEllipse(Pens.Green, , , , );
bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);//图片保存到输出流
}

3.获取系统信息:

context.Response.ContentType = "image/jpeg";
using (Bitmap bmp = new Bitmap(, ))//创建一个尺寸为500*500的内存图片
using (Graphics g = Graphics.FromImage(bmp))//得到图片的画布
using (Font font = new Font(FontFamily.GenericSerif, ))
{
HttpRequest request = context.Request;
g.DrawString("IP:" + request.UserHostAddress, font, Brushes.Red, , );
g.DrawString("浏览器:" + request.Browser.Browser + request.Browser.Version, font, Brushes.Red, , );
g.DrawString("操作系统:" + request.Browser.Platform, font, Brushes.Red, , );
bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);//图片保存到输出流
}

4.动态创建泡妞证:

context.Response.ContentType = "image/jpeg";
string name = context.Request["name"];
string imgFullPath = context.Server.MapPath("~/PaoNiuZheng.jpg");
using (Image bmp = Bitmap.FromFile(imgFullPath))
using (Graphics g = Graphics.FromImage(bmp))//得到图片的画布
using (Font font1 = new Font(FontFamily.GenericSerif, ))
using (Font font2 = new Font(FontFamily.GenericSerif, ))
{
{
g.DrawString(name, font1, Brushes.Black, , );//Font应该被释放
g.DrawString(name, font2, Brushes.Black, , );//Font应该被释放
bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);//图片保存到输出流
}
}

5.动态生成四位数字的验证码

Random name = new Random();
int r = name.Next(, );
using (Bitmap bmp = new Bitmap(, ))//创建一个尺寸为500*500的内存图片
using (Graphics g = Graphics.FromImage(bmp))//得到图片的画布
{
g.DrawString(r.ToString(), new Font(FontFamily.GenericSerif, ), Brushes.Red, , );//Font应该被释放
g.DrawEllipse(Pens.Green, , , , );
bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);//图片保存到输出流
}

HttpHandler动态生成图片的更多相关文章

  1. 动态生成图片 保存到OutputStream

    #region 把图片Copy到输出流 //获得图片全路径 string path = context.Server.MapPath("~/img/158_003.jpg"); / ...

  2. dojo动态生成图片并按中心缩放

    首先,本人在项目动态加载图片是根据点击图片名称来获取图片所在地址,从而使其打开一个新的窗口显示图片的.这里根据每个人的也许需求进行更改(要么就是在本页面底下打开要么就是新建一个窗口打开),不做探讨. ...

  3. wp8.1 学习笔记 001 动态生成图片 并更改图片位置

    1.在xaml中划分表格 <Grid Name="gr"> <Grid.ColumnDefinitions> <ColumnDefinition> ...

  4. java 根据图片文字动态生成图片

    今天在做热敏打印机打印二维码,并有文字描述,想到的简单的方法就是根据热敏打印机的纸张宽度和高度,生成对应的图片,如下: package com.orisdom.utils; import lombok ...

  5. ASP.NET动态生成图片样式的验证码

    我们在设计用户登录模块时,经常会用到验证码,可以有效地防止黑客软件的恶意破解. 在此我就直接放置一个网页链接,以后用的时候可以当做备忘! 此连接中有多种验证码图片的样式可供参考. http://www ...

  6. ThinkPHP5 动态生成图片缩略图

    需求场景 不同终端(PC端.手机端.平板),不同界面(列表页.详情页),对图片大小的要求不一样, 如果所有场景下都使用同一尺寸的图片,势必对会网络带宽及服务器性能造成一定的影响,由此需要服务器端能够根 ...

  7. 如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放

    如何安装nginx_lua_module模块,升级nginx,nginx-lua-fastdfs-GraphicsMagick动态生成缩略图,实现图片自动裁剪缩放 参考网站:nginx-lua-fas ...

  8. java的动态验证码单线设计

    1.java的动态验证码我这里将介绍两种方法: 一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了 ...

  9. Nginx 整合 Lua 实现动态生成缩略图

    原文地址:Nginx 整合 Lua 实现动态生成缩略图 博客地址:http://www.extlight.com 一.前提 最近在开发一个项目,涉及到缩略图的功能,常见的生成缩略图的方案有以下几个: ...

随机推荐

  1. POJ1065 Area

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18499   Accepted: 5094 Description You ...

  2. [IOS Delegate和协议]

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/25655443 作者:小马 代理和协议的语法这里不赘述,自己查资料. 这个demo的 ...

  3. 学习笔记-Kuaihu(仿知乎日报)

    本文目的:由于第一次学习较为完整的项目,故作记录以系统地整理APP开发知识 先看看整个项目结构: activity, fragment, 不用说了.可以看做MVC中的controller db, 存储 ...

  4. Android应用目录结构分析

    一.手动创建android项目 手动创建一个Android项目,命名为HelloWorld,命令如下: android create project -n HelloWorld -t 1 -p E:/ ...

  5. 神经网络训练中的Tricks之高效BP(反向传播算法)

    神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 ...

  6. C++中debug和release的区别 . 转载

    vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...

  7. SQLServer 删除所有表的外键约束

    )) begin exec(@c1) fetch next from c1 into @c1 endclose c1deallocate c1

  8. Ajax相同url的请求,IE缓存问题

    最近做一个小项目,其中的一个页面如下,需要实现异步改变“是否推荐”的状态. 请求的代码如下: $.get("/Contorller/Edit", { id: id }, funct ...

  9. iOS学习笔记—ViewController/生命周期

    ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图.iOS的SDK中提供很多原生ViewController ...

  10. BSGS算法_Baby steps giant steps算法(无扩展)详解

    Baby Steps-Varsity Giant Step-Astronauts(May'n・椎名慶治) 阅读时可以听听这两首歌,加深对这个算法的理解.(Baby steps少女时代翻唱过,这个原唱反 ...