台灣最大程式設計社群網站
線上人數
2578
 
會員總數:246323
討論主題:189853
歡迎您免費加入會員
討論區列表 >> C# >> [WPF] 獲取網路圖片並顯示在image上
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[WPF] 獲取網路圖片並顯示在image上
價值 : 20 QP  點閱數:116 回應數:1
樓主

zl
門外漢
0 1
14 1
發送站內信

最近開始學習用C#寫WPF,想試著用httpwebRequest類做出訪問網站圖片
目前嘗試將寫入byte和轉換成ImageSource的方法分開,但不曉得如何在Button內使用

請問各位前輩,有什麼呼叫的方式可以解決。
開發環境 VS.2019

[code]
private void WebRequestCompleted(byte[] img)
{
Dispatcher.Invoke(new Action(delegate
{
CamImg.Source = ByteArrayToImage(img);
}));
}

private BitmapImage ByteArrayToImage(byte[] imgData)
{
var bmpi = new BitmapImage();
using (var ms = new MemoryStream(imgData))
{
ms.Position = 0;
bmpi.BeginInit();
bmpi.CacheOption = BitmapCacheOption.OnLoad;
bmpi.CreateOptions = BitmapCreateOptions.DelayCreation;
bmpi.StreamSource = ms;
bmpi.EndInit();
bmpi.Freeze();
}
return bmpi;
}
private void Start_Click(object sender, RoutedEventArgs e)
{
try
{
if (TextCamHost.Text != null)
{
string url = TextCamHost.Text;

if (_httpRequest != null)
_httpRequest.StopThread();

_httpRequest = new GetVideoWorker();
_httpRequest.RequestCompleted += WebRequestCompleted;
_httpRequest.StartThread(url);

// Get response content
//TODO

}
}
catch
{ MessageBox.Show("ERROR!"); }
}
[/code]

搜尋相關Tags的文章: [ httpwebRequest ] , [ image ] , [ WPF ] , [ C# ] , [ ] ,
本篇文章發表於2021-03-25 11:10
1樓
作者回應

zl
檢舉此回應
自行解決了
只要把Invoke換成BeginInvoke
就不用煩惱跨行緒處理的問題了。
本篇文章回覆於2021-03-25 14:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.