国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#byte數組與Image的相互轉換實例代碼

2019-10-29 21:11:20
字體:
來源:轉載
供稿:網友

C#byte數組與Image的相互轉換實例代碼

功能需求:

1、把一張圖片(png bmp jpeg bmp gif)轉換為byte數組存放到數據庫。

2、把從數據庫讀取的byte數組轉換為Image對象,賦值給相應的控件顯示。

3、從圖片byte數組得到對應圖片的格式,生成一張圖片保存到磁盤上。

這里的Image是System.Drawing.Image。

  //Get an image from file    Image image = Image.FromFile("D://test.jpg");    Bitmap bitmap = new Bitmap("D://test.jpg");

以下三個函數分別實現了上述三個需求:

using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Text;namespace NetUtilityLib{  public static class ImageHelper  {    /// <summary>    /// Convert Image to Byte[]    /// </summary>    /// <param name="image"></param>    /// <returns></returns>    public static byte[] ImageToBytes(Image image)    {      ImageFormat format = image.RawFormat;      using (MemoryStream ms = new MemoryStream())      {        if (format.Equals(ImageFormat.Jpeg))        {          image.Save(ms, ImageFormat.Jpeg);        }        else if (format.Equals(ImageFormat.Png))        {          image.Save(ms, ImageFormat.Png);        }        else if (format.Equals(ImageFormat.Bmp))        {          image.Save(ms, ImageFormat.Bmp);        }        else if (format.Equals(ImageFormat.Gif))        {          image.Save(ms, ImageFormat.Gif);        }        else if (format.Equals(ImageFormat.Icon))        {          image.Save(ms, ImageFormat.Icon);        }        byte[] buffer = new byte[ms.Length];        //Image.Save()會改變MemoryStream的Position,需要重新Seek到Begin        ms.Seek(0, SeekOrigin.Begin);        ms.Read(buffer, 0, buffer.Length);        return buffer;      }    }    /// <summary>    /// Convert Byte[] to Image    /// </summary>    /// <param name="buffer"></param>    /// <returns></returns>    public static Image BytesToImage(byte[] buffer)    {      MemoryStream ms = new MemoryStream(buffer);      Image image = System.Drawing.Image.FromStream(ms);      return image;    }    /// <summary>    /// Convert Byte[] to a picture and Store it in file    /// </summary>    /// <param name="fileName"></param>    /// <param name="buffer"></param>    /// <returns></returns>    public static string CreateImageFromBytes(string fileName, byte[] buffer)    {      string file = fileName;      Image image = BytesToImage(buffer);      ImageFormat format = image.RawFormat;      if (format.Equals(ImageFormat.Jpeg))      {        file += ".jpeg";      }      else if (format.Equals(ImageFormat.Png))      {        file += ".png";      }      else if (format.Equals(ImageFormat.Bmp))      {        file += ".bmp";      }      else if (format.Equals(ImageFormat.Gif))      {        file += ".gif";      }      else if (format.Equals(ImageFormat.Icon))      {        file += ".icon";      }      System.IO.FileInfo info = new System.IO.FileInfo(file);      System.IO.Directory.CreateDirectory(info.Directory.FullName);      File.WriteAllBytes(file, buffer);      return file;    }  }}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 满洲里市| 平武县| 全南县| 剑川县| 六安市| 扎鲁特旗| 罗山县| 龙里县| 和政县| 乌什县| 客服| 秦皇岛市| 桐乡市| 镇沅| 德昌县| 小金县| 方正县| 和静县| 义马市| 新疆| 陇南市| 延津县| 崇礼县| 开阳县| 武宣县| 大方县| 南华县| 西宁市| 中山市| 红原县| 枞阳县| 泰顺县| 北碚区| 神农架林区| 扬中市| 西盟| 门头沟区| 湘乡市| 宁安市| 仙居县| 聊城市|