手机
当前位置:查字典教程网 >编程开发 >C#教程 >C# byte数组与Image相互转换的方法
C# byte数组与Image相互转换的方法
摘要:功能需求:1、把一张图片(pngbmpjpegbmpgif)转换为byte数组存放到数据库。2、把从数据库读取的byte数组转换为Image...

功能需求:

1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。

2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。

3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。

这里的Image是System.Drawing.Image。

以下三个函数分别实现了上述三个需求:

复制代码 代码如下:

// 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;

}

【C# byte数组与Image相互转换的方法】相关文章:

C#数据结构与算法揭秘一

两路归并的数组与链表的实现方法

C#连接db2数据库的实现方法

C# 禁用鼠标中间键的方法

C#中控制远程计算机的服务的方法

C# SkinEngine控件 给窗体添加皮肤的方法

C#中将字符串转换为整型的三种解决方法总结

C#连接Oracle数据库的实例方法

C# 获取属性名的方法

C#连接MySql数据库的方法

精品推荐
分类导航