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

首頁 > 編程 > C# > 正文

C#byte數(shù)組與Image的相互轉(zhuǎn)換實例代碼

2020-01-24 00:41:21
字體:
供稿:網(wǎng)友

C#byte數(shù)組與Image的相互轉(zhuǎn)換實例代碼

功能需求:

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

2、把從數(shù)據(jù)庫讀取的byte數(shù)組轉(zhuǎn)換為Image對象,賦值給相應(yīng)的控件顯示。

3、從圖片byte數(shù)組得到對應(yīng)圖片的格式,生成一張圖片保存到磁盤上。

這里的Image是System.Drawing.Image。

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

以下三個函數(shù)分別實現(xiàn)了上述三個需求:

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;    }  }}

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔东| 东光县| 深圳市| 城口县| 长宁县| 南召县| 澄江县| 合作市| 沂源县| 册亨县| 女性| 南皮县| 平谷区| 新巴尔虎左旗| 安福县| 丽江市| 蒲城县| 兰考县| 彰武县| 平塘县| 罗源县| 安阳市| 襄汾县| 光山县| 临城县| 横峰县| 洱源县| 临汾市| 那曲县| 芦山县| 始兴县| 绥化市| 云霄县| 梁河县| 大余县| 乐清市| 桓仁| 襄城县| 贵州省| 库尔勒市| 庆元县|