图片、byte和stream转换

1、byte转图片

        /// <summary>
        /// 读取byte[]并转化为图片
        /// </summary>
        /// <param name="bytes">byte[]</param>
        /// <returns>Image</returns>
        public static Image GetImageByBytes(byte[] bytes)
        {
            Image photo = null;
            using (MemoryStream ms = new MemoryStream(bytes))
            {
                ms.Position = 0;
                photo = Image.FromStream(ms, true);
            }
            return photo;
        }

2、Base64和byte转换

            var sealData = "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD/CAMAAAAJ1vD4AAADAFBMVEX/////。。。g==";
            var bytes = Convert.FromBase64String(sealData);
            string inputString = System.Convert.ToBase64String(bytes);

3、Image转byte[]

byte[] imgbyte = dal.GetImage(item_code);
Bitmap myImage = new Bitmap(GetImageByBytes(imgbyte));
MemoryStream ms = new MemoryStream(); // 内存流
myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
bReturn = ms.GetBuffer(); // 转byte[]

 4、stream和byte[]转换

/// 将 Stream 转成 byte[]
 
public byte[] StreamToBytes(Stream stream)
{
    byte[] bytes = new byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    // 设置当前流的位置为流的开始
    stream.Seek(0, SeekOrigin.Begin);
    return bytes;
}
 
/// 将 byte[] 转成 Stream
 
public Stream BytesToStream(byte[] bytes)
{
    Stream stream = new MemoryStream(bytes);
    return stream;
}

5、stream和文件

public void StreamToFile(Stream stream,string fileName)
{
    // 把 Stream 转换成 byte[]
    byte[] bytes = new byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    // 设置当前流的位置为流的开始
    stream.Seek(0, SeekOrigin.Begin);
    // 把 byte[] 写入文件
    FileStream fs = new FileStream(fileName, FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(bytes);
    bw.Close();
    fs.Close();
}

public Stream FileToStream(string fileName)
{            
    // 打开文件
    FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
    // 读取文件的 byte[]
    byte[] bytes = new byte[fileStream.Length];
    fileStream.Read(bytes, 0, bytes.Length);
    fileStream.Close();
    // 把 byte[] 转换成 Stream
    Stream stream = new MemoryStream(bytes);
    return stream;
 
 
}

 6、url转byte[]

 using (FileStream fs = new FileStream(filepath + filename, FileMode.Open))
                {
                    BinaryReader br = new BinaryReader(fs);
                    byte[] contentBytes = br.ReadBytes(Convert.ToInt32(fs.Length));
})

 

posted @ 2018-12-18 10:37  江境纣州  阅读(64)  评论(0)    收藏  举报