最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年04月23日 16:44:57   投稿:lqh  
這篇文章主要介紹了C#byte數(shù)組與Image的相互轉換實例代碼的相關資料,需要的朋友可以參考下

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

功能需求:

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

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

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

這里的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;
    }
  }
}

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

相關文章

  • 使用C#語言實現(xiàn)的查詢條件界面展開和收起功能

    使用C#語言實現(xiàn)的查詢條件界面展開和收起功能

    這篇文章主要介紹了使用C#語言實現(xiàn)的查詢條件界面展開和收起功能的完美解決方案,需要的朋友可以參考下
    2016-11-11
  • C#實現(xiàn)基于XML配置MenuStrip菜單的方法

    C#實現(xiàn)基于XML配置MenuStrip菜單的方法

    這篇文章主要介紹了C#實現(xiàn)基于XML配置MenuStrip菜單的方法,涉及C#使用XML配置MenuStrip菜單的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#實現(xiàn)Word轉換TXT的方法詳解

    C#實現(xiàn)Word轉換TXT的方法詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)Word轉換TXT的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C# 設計模式系列教程-代理模式

    C# 設計模式系列教程-代理模式

    代理模式對客戶端來說,隱藏了真實對象的細節(jié)及復雜性,實現(xiàn)了客戶端(調用者)與真實對象的松耦合,提高了運行速度。
    2016-06-06
  • C#中DateTime.Compare()比較時間大小

    C#中DateTime.Compare()比較時間大小

    本文主要介紹了C#中DateTime.Compare()比較時間大小,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • C#框架winform實現(xiàn)簡單點餐系統(tǒng)

    C#框架winform實現(xiàn)簡單點餐系統(tǒng)

    這篇文章主要為大家詳細介紹了C#框架winform實現(xiàn)簡單點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Devexpress treelist 簡介

    Devexpress treelist 簡介

    本文給大家簡單介紹了Devexpress treelist 知識,包括屬性列表,事件及使用方法,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2016-12-12
  • C#委托與冒泡排序實例

    C#委托與冒泡排序實例

    這篇文章介紹了C#委托與冒泡排序的實例,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 解決C#全屏幕截圖的實現(xiàn)方法

    解決C#全屏幕截圖的實現(xiàn)方法

    本篇文章是對在C#中實現(xiàn)全屏幕截圖的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中將dateTimePicker初始值設置為空

    C#中將dateTimePicker初始值設置為空

    本文主要介紹了C#中將dateTimePicker初始值設置為空,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論

庐江县| 从江县| 兰坪| 富平县| 察雅县| 陆川县| 溧水县| 无极县| 开平市| 佛教| 利辛县| 宁南县| 班玛县| 博爱县| 乌什县| 巴彦县| 达日县| 乌兰县| 姚安县| 综艺| 晋州市| 陈巴尔虎旗| 历史| 阳谷县| 广水市| 纳雍县| 扶绥县| 惠州市| 酒泉市| 华池县| 新干县| 监利县| 孙吴县| 秦皇岛市| 高邑县| 乐山市| 饶河县| 濮阳市| 普安县| 读书| 泰安市|