WPF显示网络图片的几种方法
1、利用数据流

1 Image img;
2 byte[] btyarray = GetImageFromResponse(imageUrl);
3
4 //字节数据转流
5 MemoryStream ms = new MemoryStream(btyarray);
6
7 //重点:设置Image控件的Source为流格式的图片数据
8 img.Source = BitmapFrame.Create(ms, BitmapCreateOptions.None, BitmapCacheOption.Default);
9
10
11 //从图片地址获取图片字节数据
12 public byte[] GetImageFromResponse(string url, string cookie = null)
13 {
14 try
15 {
16 System.Net.WebRequest request = System.Net.WebRequest.Create(url);
17 if (!string.IsNullOrWhiteSpace(cookie))
18 {
19 request.Headers[System.Net.HttpRequestHeader.Cookie] = cookie;
20 }
21
22 System.Net.WebResponse response = request.GetResponse();
23
24 using (Stream stream = response.GetResponseStream())
25 {
26 using (MemoryStream ms = new MemoryStream())
27 {
28 Byte[] buffer = new Byte[1024];
29 int current = 0;
30 do
31 {
32 ms.Write(buffer, 0, current);
33 } while ((current = stream.Read(buffer, 0, buffer.Length)) != 0);
34 return ms.ToArray();
35 }
36 }
37 }
38 catch (Exception ex)
39 {
40 Console.WriteLine(ex.Message);
41 //throw new Exception(ex.Message);
42 return null;
43 }
44 }

2、利用BitmapImage
1 BitmapImage bitImage = new BitmapImage();
2 bitImage.BeginInit();
3 bitImage.UriSource = new Uri(imageUrl, UriKind.Absolute);
4 bitImage.EndInit();
5 img.Source = bitImage;
总结
两种方式都用过了,觉得第一种好点,因为第一种可以判断是否加载成功,这样可以做后续操作
WPF显示网络图片的几种方法的更多相关文章
- WPF显示html的几种方法
原文:WPF显示html的几种方法 客户希望系统在一些特定的条件下,界面上能显示用户自定义的格式和内容,格式和内容通过html指定. 基本上在wpf中显示html有以下四种方法. 1. W ...
- WPF多线程UI更新——两种方法
WPF多线程UI更新——两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对 ...
- DataGridView显示数据的两种方法
1.简介 DataGridView空间是我们经常使用的显示数据的控件,它有极高的可配置性和可扩展性. 2.显示数据 DataGridView显示数据一般我们经常使用的有两种方法,一种是直接设置Data ...
- Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...
- URL转Drawable之 Android中获取网络图片的三种方法
转载自: http://doinone.iteye.com/blog/1074283 Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Applicatio ...
- python 读取并显示图片的两种方法
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...
- python实现读取并显示图片的两种方法
https://www.cnblogs.com/lantingg/p/9259840.html 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片. ...
- vue+element 返回数组或json数据自定义某列显示的处理--两种方法
本文是作者开发一个业务需求时,将返回数据列表的其中一个数据长度很长的字段处理成数组,并将其作为子表显示的过程,具体样式如下(数据做了马赛克处理) 返回的过长字段数据处理(用分号分隔的一个长字段): t ...
- Qt 显示图片的三种方法
一. 直接用QLabel显示原图 //单独显示的QLabel 其大小为内容即图片的大小,若将QLabel放入QMainWindow中则QLabel的大小为其初始大小. /* QLabel *label ...
- 树莓派linux系统中显示隐藏文件的几种方法
一.如果直接使用可视化文件管理器 1.直接点击右键,直接选择“显示隐藏文件”选项. 2.快捷键 CTRL + H 二.在终端命令行模式下 可以使用ls命令的-a参数来显示隐藏的文件及文件夹. ls - ...
随机推荐
- 抓包整理————tcp 三次握手[九]
前言 简单抓包一下3次握手. 正文 握手的目标: 同步sequence 序列化 初始化序列化ISN(Initial Sequence Number) 交换tcp 通信参数 如MSS.窗口比例因子.选择 ...
- iOS自动化打包命令xcodebuild大全
iOS实现自动化打包已经稳定运营几年了,不同的场景用到xcodebuild命令不一样,有的参数可能一直都用不到,列举一些常用的命令,比如编译命令: xcodebuild archive -worksp ...
- JavaScript如何判断一个元素是否在可视区域中?
一.用途 可视区域即我们浏览网页的设备肉眼可见的区域,如下图 在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一个值(例如 100 px),从而实现一些常用的功能,例如: 图片 ...
- hashchang事件是异步更新的
1.代码 // 此时会触发hashchange location.hash = '/test' window.addEventListener('hashchange', () => { con ...
- 力扣8(java)-字符串转整数(atoi)(中等)
题目: 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). 函数 myAtoi(string s) 的算法 ...
- 说说关系型数据库与Serverless
简介: 看到如今Serverless在云计算行业喷薄欲出的态势,像极了<星星之火,可以燎原>中的描述:虽然不能预测未来的发展和变化,但对于云计算来说这是个相对确定的方向.本文从产业界和学术 ...
- Arthas 初探--安装初步适用
简介: 由于在项目中遇到一种情况,某段代码在进行单元测试和在 tomcat 容器中运行的性能相差数百倍,因此需要分析在不同环境下某个方法执行的具体时间,从而确定问题.Arthas 可以做到无侵入的监控 ...
- NBF事件中心架构设计与实现
简介:NBF是阿里巴巴供应链中台的基础技术团队打造的一个技术PaaS平台,她提供了微服务FaaS框架,低代码平台和中台基础设施等一系列的PaaS产品,旨在帮助业务伙伴快速复用和扩展中台能力,提升研发 ...
- 网关流控利器:结合 AHAS 实现 Ingress/Nginx 流量控制
简介:微服务的稳定性一直是开发者非常关注的话题.随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战. 作者:涂鸦 微服务的稳定性 ...
- 用手机写代码:基于 Serverless 的在线编程能力探索
简介:Serverless 架构的按量付费模式,可以在保证在线编程功能性能的前提下,进一步降低成本.本文将会以阿里云函数计算为例,通过 Serverless 架构实现一个 Python 语言的在线编 ...