将Image对象和byte[]互相转换

//需要引入的命名空间
using
System;
using System.IO;
using System.Drawing;
using System.Runtime.Serialization.Formatters.Binary;
//引入供序列化Image对象使用

//以下为转换方法

//将Image转换为byte[]
public byte[] ConvertImage(Image image)
{
     FileStream fs=new FileStream("imagetemp",FileMode.Create,FileAccess.Write,FileShare.None);
     BinaryFormatter bf = new BinaryFormatter();
     bf.Serialize(fs,(object)image);
     fs.Close();
     fs=new FileStream("imagetemp",FileMode.Open,FileAccess.Read,FileShare.None);
     byte[] bytes = new byte[fs.Length];
     fs.Read(bytes,0,(int)fs.Length);
     fs.Close();
     return bytes;
}

//将byte[]转换为Image
public Image ReadImage(byte[] bytes)
{
  FileStream fs=new FileStream("imagetemp1",FileMode.Create,FileAccess.Write,FileShare.None);
  foreach(byte a in bytes)
  {
    fs.WriteByte(a);
  }
     fs.Close();
     fs=new FileStream("imagetemp1",FileMode.Open,FileAccess.Read,FileShare.None);
     BinaryFormatter bf = new BinaryFormatter();
     object obj=bf.Deserialize(fs);   
  fs.Close(); 
  return (Image)obj;
}

/// <summary>
/// 将byte[]转换为Image
/// </summary>
/// <param name="bytes">字节数组</param>
/// <returns>Image</returns>

public Image ReadImage(byte[] bytes)
{
     MemoryStream ms=new MemoryStream(bytes,0,bytes.Length);
     BinaryFormatter bf = new BinaryFormatter();
     object obj=bf.Deserialize(ms);   
  ms.Close(); 
  return (Image)obj;
}
/// <summary>
/// 将Image转换为byte[]
/// </summary>
/// <param name="image">Image</param>
/// <returns>byte[]</returns>

public byte[] ConvertImage(Image image)
{
     MemoryStream ms=new MemoryStream();
     BinaryFormatter bf = new BinaryFormatter();
     bf.Serialize(ms,(object)image);
     ms.Close();
     return ms.ToArray();
}

转载于:https://www.cnblogs.com/furenjian/articles/3356512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值