控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

.NET开发中二进制图片读取与存储以及代码

作者:佚名 出处:互联网 2010年04月07日 阅读:

控件中国网提示:本文介绍.NET二进制图片存储与读取的常见方法。
  .NET二进制图片存储与读取的常见方法有以下几种:

  .NET二进制图片存储:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].

  1.参数是图片路径:返回Byte[]类型:


    1.public byte[] GetPictureData(string imagepath)
  2. {
  3. //根据图片文件的路径使用文件流打开,并保存为byte[]
  4. FileStream fs = new FileStream(imagepath, FileMode.Open);
  5. byte[] byData = new byte[fs.Length];
  6. fs.Read(byData, 0, byData.Length);
  7. fs.Close();
  8. return byData;
  9. }
  10.


  2.参数类型是Image对象,返回Byte[]类型:本文由控件中国网转载


    1.public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
  2. {
  3. //将Image转换成流数据,并保存为byte[]
  4. MemoryStream mstream = new MemoryStream();
  5. imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
  6. byte[] byData = new Byte[mstream.Length];
  7. mstream.Position = 0;
  8. mstream.Read(byData, 0, byData.Length);
  9. mstream.Close();
  10. return byData;
  11. }


  好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。

  .NET二进制图片读取:把相应的字段转换成Byte[]即:Byte[] bt=(Byte[])XXXX

  1.参数是Byte[]类型,返回值是Image对象:


      1.public System.Drawing.Image ReturnPhoto(byte[] streamByte)
  2. {
  3. System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
  4. System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
  5. return img;
  6. }


  2.参数是Byte[] 类型,没有返回值,这是针对asp.net中把图片从输出到网页上(Response.BinaryWrite)


    1.public void WritePhoto(byte[] streamByte)
  2. {
  3. // Response.ContentType 的默认值为默认值为“text/html”
  4. Response.ContentType = "image/GIF";
  5. //图片输出的类型有: image/GIF image/JPEG
  6. Response.BinaryWrite(streamByte);
  7. }


  补充:

  针对Response.ContentType的值,除了针对图片的类型外,还有其他的类型:


    1.Response.ContentType = "application/msword";
  2. Response.ContentType = "application/x-shockwave-flash";
  3. Response.ContentType = "application/vnd.ms-excel";


  另外可以针对不同的格式,用不同的输出类型以适合不同的类型:

 
    1.switch (dataread("document_type"))
  2. {
  3. case "doc":
  4. Response.ContentType = "application/msword";
  5. case "swf":
  6. Response.ContentType = "application/x-shockwave-flash";
  7. case "xls":
  8. Response.ContentType = "application/vnd.ms-excel";
  9. case "gif":
  10. Response.ContentType = "image/gif";
  11. case "Jpg":
  12. Response.ContentType = "image/jpeg";
  13. }
本文由控件中国网转载
 

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统