Byte[]、Image、Bitmap 之间的相互转换
来源:互联网 发布:mac qq怎么远程协助 编辑:程序博客网 时间:2024/06/05 14:06
/// <summary>/// 将图片Image转换成Byte[]/// </summary>/// <param name="Image">image对象</param>/// <param name="imageFormat">后缀名</param>/// <returns></returns>public static byte[] ImageToBytes(Image Image, System.Drawing.Imaging.ImageFormat imageFormat){ if (Image == null) { return null; } byte[] data = null; using (MemoryStream ms= new MemoryStream()) { using (Bitmap Bitmap = new Bitmap(Image)) { Bitmap.Save(ms, imageFormat); ms.Position = 0; data = new byte[ms.Length]; ms.Read(data, 0, Convert.ToInt32(ms.Length)); ms.Flush(); } } return data;}
/// <summary>/// byte[]转换成Image/// </summary>/// <param name="byteArrayIn">二进制图片流</param>/// <returns>Image</returns>public static System.Drawing.Image byteArrayToImage(byte[] byteArrayIn){ if (byteArrayIn == null) return null; using (System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArrayIn)) { System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms); ms.Flush(); return returnImage; }}
//Image转换BitmapBitmap img = new Bitmap(imgSelect.Image);Bitmap bmp = (Bitmap)pictureBox1.Image;
//Bitmap转换成Imageusing System.IO;private static System.Windows.Controls.Image Bitmap2Image(System.Drawing.Bitmap Bi){ MemoryStream ms = new MemoryStream(); Bi.Save(ms, System.Drawing.Imaging.ImageFormat.Png); BitmapImage bImage = new BitmapImage(); bImage.BeginInit(); bImage.StreamSource = new MemoryStream(ms.ToArray()); bImage.EndInit(); ms.Dispose(); Bi.Dispose(); System.Windows.Controls.Image i = new System.Windows.Controls.Image(); i.Source = bImage; return i ;}
//byte[] 转换 Bitmap public static Bitmap BytesToBitmap(byte[] Bytes) { MemoryStream stream = null; try { stream = new MemoryStream(Bytes); return new Bitmap((Image)new Bitmap(stream)); } catch (ArgumentNullException ex) { throw ex; } catch (ArgumentException ex) { throw ex; } finally { stream.Close(); } }
//Bitmap转byte[] public static byte[] BitmapToBytes(Bitmap Bitmap) { MemoryStream ms = null; try { ms = new MemoryStream(); Bitmap.Save(ms, Bitmap.RawFormat); byte[] byteImage = new Byte[ms.Length]; byteImage = ms.ToArray(); return byteImage; } catch (ArgumentNullException ex) { throw ex; } finally { ms.Close(); } }