1、加载网络图片到内存system.drawing.image对象中
2、内存中的image 转Bitmap 再转适合system.windows.controls.image 的BitmapImage类型
为什么:网络延迟,得不到实时的图片信息
string userHeadPic = "http://123.56.178.100/headpic/7.jpg"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(userHeadPic); WebResponse response = request.GetResponse(); System.Drawing.Image img = System.Drawing.Image.FromStream(response.GetResponseStream()); Bitmap bitMap = new Bitmap(img); BitmapImage bitUserLogo = BitmapToBitmapImage(bitMap); SchoolPubData.UserInfo.imgHead.Source = bitUserLogo; SchoolPubData.MainForm.ToSchoolSwitchPage();
public BitmapImage BitmapToBitmapImage(Bitmap bitmap) { Bitmap bitmapSource = new Bitmap(bitmap.Width, bitmap.Height); int i, j; for (i = 0; i < bitmap.Width; i++) for (j = 0; j < bitmap.Height; j++) { System.Drawing.Color pixelColor = bitmap.GetPixel(i, j); System.Drawing.Color newColor = System.Drawing.Color.FromArgb(pixelColor.R, pixelColor.G, pixelColor.B); bitmapSource.SetPixel(i, j, newColor); } MemoryStream ms = new MemoryStream(); bitmapSource.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = new MemoryStream(ms.ToArray()); bitmapImage.EndInit(); return bitmapImage; }