.Net下图片的常见存储与读取凡是有以下几种:
存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].
1.参数是图片路径:返回Byte[]类型:

 public byte[] GetPictureData(string imagepath)
        {
            /**/////根据图片文件的路径使用文件流打开,并保存为byte[]   
            FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法 
            byte[] byData = new byte[fs.Length];
            fs.Read(byData, 0, byData.Length);
            fs.Close();
            return byData;
        }

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

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

好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。
读取图片:把相应的字段转换成Byte[]即:Byte[] bt=(Byte[])XXXX
1.参数是Byte[]类型,返回值是Image对象:

 public System.Drawing.Image ReturnPhoto(byte[] streamByte)
        {
            System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
            System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
            return img;
        }

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

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

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

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

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

  switch (dataread("document_type"))
            {
                case "doc":
                    Response.ContentType = "application/msword";
                case "swf":
                    Response.ContentType = "application/x-shockwave-flash";
                case "xls":
                    Response.ContentType = "application/vnd.ms-excel";
                case "gif":
                    Response.ContentType = "image/gif";
                case "Jpg":
                    Response.ContentType = "image/jpeg";
            }

转载于:https://www.cnblogs.com/RobotTech/archive/2008/01/28/1056138.html

.Net下二进制形式的文件(图片)的存储与读取 [ZT]相关推荐

  1. 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;

    原文链接 FileReader来把文件读入内存,并且读取文件中的数据. readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL ...

  2. C语言中以二进制形式输出文件

    FILE *outfp; outfp=fopen("MatR.bin","wb"); fwrite(MatR[0],sizeof(float),n_rows*9 ...

  3. oralc 中图片的存储与读取

    ai0709编写,joker_yao整理 //数据类型 long row //存储 SaveImg public void insertr_save_img(String img_no,String  ...

  4. linux系统下c语言的文件读写

    在linux系统下与github交互 1.创建仓库 在github下创建自己的仓库 2.安装git sudo apt-get install libcurl4-gnutls-dev libexpat1 ...

  5. C语言以数据块的形式读写文件

    C语言以数据块的形式读写文件 fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets 遇到换行符就结束读取.如果希望读取多行内容,需要使用 fread 函数:相应地写入函数为 f ...

  6. c语言fwrite作用,C语言fread和fwrite的用法详解(以数据块的形式读写文件)

    fgets() 有局限性,每次最多只能从文件中读取一行内容,因为 fgets() 遇到换行符就结束读取.如果希望读取多行内容,需要使用 fread() 函数:相应地写入函数为 fwrite(). 对于 ...

  7. python调用文件对象所提供的读取数据的函数_python读写数据文件

    1. read.readline.readlines (1)open函数 如果你想用python读取文件(如txt.csv等),第一步要用open函数打开文件. open()是python的内置函数, ...

  8. c 语言解析png图片文件信息,利用C/C++二进制读写png文件的方法示例

    前言 二进制文件不是以ASCII代码存放数据的,它将内存中数据存储形式不加转换地传送到磁盘文件,因此它又称为内存数据的映像文件.因为文件中的信息不是字符数据,而是字节中的二进制形式的信息,因此它又称为 ...

  9. 用C语言读取png图片十六进制,C/C++ 二进制读写 png 文件

    #include #include usingnamespacestd; typedefunsignedcharbyte; /* class PngMsg { private : unsigned c ...

最新文章

  1. mySql比较并获取当前时间x分钟之前的数据(时间是字符串类型)
  2. linux c 自定义信号 测试kill信号发送
  3. Python3之字符串格式化format函数详解(下)
  4. Redis 5.0新功能介绍
  5. quantum theory
  6. HTML基础知识(常见元素、列表、链接元素、图片元素)
  7. ASP.NET Core2.0 环境下MVC模式的支付宝PC网站支付接口-沙箱环境开发测试
  8. GPS/轨迹追踪、轨迹回放、围栏控制
  9. 7nmarm微架构鲲鹏服务器芯片,中国电信服务器集采:同方鲲鹏服务器拿下6000万元份额...
  10. map中key值带‘-’转json_h5模型转savedModel + tf_serving部署采坑记录
  11. 背包之01背包、完全背包、多重背包详解
  12. mllib线性回归GeneralizedLinearModel GeneralizedLinearAlgorithm源码解析
  13. thinkphp的四种控制器URL访问方式
  14. shp地图如何导入奥维地图手机_如何将CAD图导入到手机版奥维互动地图
  15. python矩阵连乘_python动态规划解决矩阵连乘
  16. 2 数据可视化大屏 - 布局
  17. UG NX二次开发(C#)-装配-删除阵列矩阵
  18. 关于NB-IOT模块链接阿里物联网平台的学习笔记-记录
  19. 正确使用uniapp搭配微信开发者工具自带的骨架屏功能,生成骨架屏
  20. linux密码忘记了|密码重置最简单方法

热门文章

  1. shell在一个大文件找出想要的一段字符串操作技巧
  2. 1.8-zabbix服务端安装
  3. NSCoding和NSCopy
  4. 简单音乐播放实例的实现,Android Service AIDL 远程调用服务
  5. linux 下 oracle 10.2.0.1 32bit netca报错
  6. 用 git 同步 Colab 与 Gitlab、Github 之间的文件
  7. 14.6.3.1 The InnoDB Buffer Pool
  8. html常用标签(form标签)
  9. Asp.Net+Jquery.Ajax详解5-$.getScript
  10. 美味奇缘_轻松访问和管理您的美味书签