Image、Byte[]、Bitmap相互转换
Image、Byte[]、Bitmap相互轉換
/// <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轉換Bitmap
???1. Bitmap img = new Bitmap(imgSelect.Image);
???2. Bitmap bmp = (Bitmap)pictureBox1.Image;
?
//Bitmap轉換成Image
using 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();?
??????????? }?
??????? }?
??? }
轉載于:https://www.cnblogs.com/vmyspace/archive/2012/03/19/2405666.html
總結
以上是生活随笔為你收集整理的Image、Byte[]、Bitmap相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随笔:web服务器中建立一个小的个人站点
- 下一篇: 解决PHPCMS 安装问题 Can no