/******************************
* 说明:图片处理相关类
* 创建人:龚宇超
* 创建日期:2017-07-24
* 修改人:
* 修改日期:
* 修改备注:
* 版本:1.0.0.0
******************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Drawing;
namespace Lskj.Util
{
public static class ImageHelper
{
///
/// 说明:将byte[]转换为Image
/// 创建人:龚宇超
/// 创建日期:2017-07-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// byte数组
/// 转换后图片
public static Image ReadImage(byte[] bytes)
{
try
{
if (bytes == null) return null;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes))
{
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
ms.Flush();
return returnImage;
}
}
catch (Exception)
{
}
return null;
}
///
/// 通过FileStream 来打开文件,这样就可以实现不锁定Image文件,到时可以让多用户同时访问Image文件
///
///
///
public static Image ReadImage(string path)
{
try
{
FileStream fs = File.OpenRead(path); //OpenRead
int filelength = 0;
filelength = (int)fs.Length; //获得文件长度
Byte[] image = new Byte[filelength]; //建立一个字节数组
fs.Read(image, 0, filelength); //按字节流读取
System.Drawing.Image result = System.Drawing.Image.FromStream(fs);
fs.Close();
return result;
}
catch (Exception)
{
}
return null;
}
///
/// 说明:将图片转换为byte数组
/// 创建人:龚宇超
/// 创建日期:2017-07-24
/// 修改人:
/// 修改日期:
/// 修改备注:
/// 版本:1.0
///
/// 图片
/// 转换后的byte数组
public static byte[] ConvertImage(Image image)
{
try
{
//实例化流
System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
//将图片的实例保存到流中
image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Bmp);
//image.Save(imageStream, image.RawFormat);
//保存流的二进制数组
byte[] imageContent = new Byte[imageStream.Length];
imageStream.Position = 0;
//将流泻如数组中
imageStream.Read(imageContent, 0, (int)imageStream.Length);
return imageStream.ToArray();
}
catch (Exception)
{
}
return null;
}
}
}