源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C# byte数组与Image相互转换的方法

  • 时间:2021-11-08 19:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# byte数组与Image相互转换的方法
功能需求: 1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。 2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。 这里的Image是System.Drawing.Image。 以下三个函数分别实现了上述三个需求:
[u]复制代码[/u] 代码如下:
// Convert Image to Byte[]         private byte[] ImageToByte(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;             }         }         // Convert Byte[] to Image         private Image ByteToImage(byte[] buffer)         {             MemoryStream ms = new MemoryStream(buffer);             Image image = System.Drawing.Image.FromStream(ms);             return image;         }         // Convert Byte[] to a picture         private string CreateImageFromByte(string fileName, byte[] buffer)         {             string file = fileName; //文件名(不包含扩展名)             Image image = ByteToImage(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";             }             //文件路径目录必须存在,否则先用Directory创建目录             File.WriteAllBytes(file, buffer);             return file;         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部