Image扩展,如何将网络图片显示在自己的程序中
来源:互联网 发布:ubuntu可以做什么 编辑:程序博客网 时间:2024/06/02 13:58
因为图片来源多种多样,默认框架已经提供了好几种图片读取方式,比如Image.FromFile,Image.FromHbitmap,Image.FromStream,但就是没有提供Image.FromNet,所以这里写了个通用的扩展方法,可以支持从Net环境中读取图片(Http、Ftp等),因为只是个扩展,也没啥好说的,直接上代码就是
using System.Drawing; using System.Net; public static class ImageExtensions { /// <summary> /// 通过NET获取网络图片 /// </summary> /// <param name="url">要访问的图片所在网址</param> /// <param name="requestAction">对于WebRequest需要进行的一些处理,比如代理、密码之类</param> /// <param name="responseFunc">如何从WebResponse中获取到图片</param> /// <returns></returns> public static Image GetImageFromNet(this string url, Action<WebRequest> requestAction = null, Func<WebResponse, Image> responseFunc = null) { return new Uri(url).GetImageFromNet(requestAction, responseFunc); } /// <summary> /// 通过NET获取网络图片 /// </summary> /// <param name="url">要访问的图片所在网址</param> /// <param name="requestAction">对于WebRequest需要进行的一些处理,比如代理、密码之类</param> /// <param name="responseFunc">如何从WebResponse中获取到图片</param> /// <returns></returns> public static Image GetImageFromNet(this Uri url, Action<WebRequest> requestAction = null, Func<WebResponse, Image> responseFunc = null) { Image img; try { WebRequest request = WebRequest.Create(url); if (requestAction != null) { requestAction(request); } using (WebResponse response = request.GetResponse()) { if (responseFunc != null) { img = responseFunc(response); } else { img = Image.FromStream(response.GetResponseStream()); } } } catch { img = null; } return img; } }调用方法就是
var uri = "http://t1.mmonly.cc/uploads/allimg/tuku2/16343123c-11.jpg"; //var uri = new Uri("http://t1.mmonly.cc/uploads/allimg/tuku2/16343123c-11.jpg"); var img = uri.GetImageFromNet( //(request) => //{//此处可以对request进行相关设定,因为此部分均为基类,所以也可以用于FtpWebRequest之类 // request.Timeout = 2000; //}, //(response) => //{//此处可以确定如何从response中获取图片,同时可以包括相关判断之类 // return Image.FromStream(response.GetResponseStream()); //} );
0 0
- Image扩展,如何将网络图片显示在自己的程序中
- 如何在TextView中显示网络上的图片
- 将自己上传的图片在textarea中显示(备用)
- 如何显示数据库中Image类型的图片
- 如何显示数据库中Image类型的图片
- 在自己的程序中显示网页
- 如何将存放在数据库BLOB字段的图像显示在asp.net的IMAGE控件中
- 如何在Cruise中显示自己定义的report (将EMMA的report显示在页面上)
- FileUpload实现将图片保存到数据库在image中显示
- 在asp.net中如何将SQL server中的image显示在网页上
- 如何在UltraWebGrid的Cell中显示Image?
- 如何将Qt Demo中的ArthurStyle风格用在自己的程序中
- 在Android程序里显示自己的图片
- FB4 AS3 如何在AdvancedDataGrid中显示网络图片
- “如何将16进制码流在html中显示为图片”兼容多个浏览器的方案。
- “如何将16进制码流在html中显示为图片”兼容多个浏览器的方案
- 如何将Webbrowser获取的验证码显示在图片框中
- iOS开发如何将自己的程序在真机上运行
- 在eclipse中将android工程打包成apk
- 从assets中拷贝from文件到指定目录下
- 关于vs2013中printf printf_s的错误问题的解决方法
- linux-i386(ubuntu14.0)下编译安装gsoap_2.8.17过程记录
- 黑马程序员----Java中的条件语句
- Image扩展,如何将网络图片显示在自己的程序中
- Android 插件化技术 加载任意未安装apk
- printf调试宏
- solr的logging会出现依赖包缺少解决方案
- application was unable to start correctly (0xc0150002)
- 数据类型与运算符
- 如何在anroid studio的工程中引用本地aar文件
- 关于strstr函数的测试
- 单选框选中的几种方法,总结