/// <summary> /// 解析字節數組成圖片 /// </summary> /// <param name="byteArray"></param> /// <returns></returns> public static BitmapImage ByteArrayToBitmapImage(byte[] byteArray) { BitmapImage bmp = null; try { bmp = new BitmapImage(); bmp.BeginInit(); bmp.StreamSource = new MemoryStream(byteArray); bmp.EndInit(); } catch { bmp = null; } return bmp; } /// <summary> /// 圖片數據解析成字節流數組(用於存儲到數據庫) /// </summary> /// <param name="bmp"></param> /// <returns></returns> public static byte[] BitmapImageToByteArray(BitmapImage bmp) { byte[] byteArray = null; try { Stream sMarket = bmp.StreamSource; if (sMarket != null && sMarket.Length > 0) { sMarket.Position = 0; using (BinaryReader br = new BinaryReader(sMarket)) { byteArray = br.ReadBytes((int)sMarket.Length); } } } catch { } return byteArray; } /// <summary> /// 根據圖片的路徑解析成圖片資源 /// </summary> /// <param name="filePath"></param> /// <returns></returns> public static byte[] BitmapImageToByteArray(String filePath) { byte[] byteArray = null ; if(File.Exists(filePath)) byteArray = File.ReadAllBytes(filePath); return byteArray; } /// <summary> /// 根據圖片的相對路徑 返回 BitmapImage對象的實例化 /// </summary> /// <param name="imgPath">圖片的相對路徑(如:@"/images/star.png")</param> /// <returns></returns> public static BitmapImage GetBitmapImage(string imgPath) { try { if (!imgPath.StartsWith("/")) { imgPath = "/" + imgPath; } return new BitmapImage(new Uri("Pack://application:,,," + imgPath)); } catch { return EmptyImageSource; } } /// <summary> /// 根據圖片的相對路徑 獲取Image對象 /// </summary> /// <param name="imgPath">圖片的相對路徑(如:@"/images/star.png")</param> /// <returns></returns> public static Image GetImage(string imgPath) { if (File.Exists(imgPath)) { Image im = new Image(); im.Source = GetBitmapImage(imgPath); return im; } else return null; } /// <summary> /// 根據圖片的相對路徑 獲取ImageBrush對象 (此對象資源可以直接用於綁定控件的Background屬性) /// </summary> /// <param name="imgPath">圖片的相對路徑(如:@"/images/star.png")</param> /// <returns></returns> public static ImageBrush GetImageBrush(string imgPath) { if (File.Exists(imgPath)) { ImageBrush ib = new ImageBrush(); ib.ImageSource = GetBitmapImage(imgPath); return ib; } else return null; }