WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
随笔 - 1079, 文章 - 1, 评论 - 75, 阅读 - 174万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

WPF显示网络图片的几种方法

Posted on   WebEnh  阅读(589)  评论(0编辑  收藏  举报

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;

总结

两种方式都用过了,觉得第一种好点,因为第一种可以判断是否加载成功,这样可以做后续操作

 
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-12-21 设置 ASP.NET Core Web API 中响应数据的格式 AddNewtonsoftJson 使用NewtonsoftJson替换掉默认的System.Text.Json序列化组件
2018-12-21 nginx 常见正则匹配符号表示
2018-12-21 Nginx if 条件判断
2016-12-21 【Bootstrap-插件使用】Jcrop+fileinput组合实现头像上传功能
2016-12-21 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2016-12-21 ASP.NET MVC 3 技术(九) 301永久重定向不带www域名到带www的域名
2016-12-21 ASP.NET MVC 3 网站优化总结(三)Specify Vary: Accept-Encoding header
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多