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;

總結

兩種方式都用過了,覺得第一種好點,因為第一種可以判斷是否加載成功,這樣可以做后續操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM