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

.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++tcp接收文件缓存多大合适_网易面经:深剖TCP协议的流量控制和拥塞控制,你懂了吗?...

1.自我介绍项目2.RPC框架和普通http有什么区别和优势? 基于Tcp封装还是http封装的3.rpc是长连接吗?如果要传输一个特别大的文件 底层还是基于流吗? Nio是一个什么IO模型?4.github了的watch star fork5.异常和error的区别&#xff…

cmd看excel有多少个子表_Excel中多个工作簿(工作表)如何合并为1个工作簿(工作表)?...

看到Excel多表合并,其实常见的有2种场景场景一:多个Excel文件需要合并为1个Excel文件(多个工作簿合并为1个工作簿)场景二:1个Excel文件种有多个工作表,需要合并为1个工作表首先来看下,场景一(多个Excel文件合并为1个文…

如何在 ASP.Net Core 中使用 LoggerMessage

ASP.NET Core 是一个开源的、跨平台的、轻量级模块化框架,可用于构建高性能、可伸缩的web应用程序,你也许不知道 ASP.NET Core 中有一个藏得很深,而且非常强大的特性,那就是 LoggerMessage,与内建的 Logger 相比&#…

希望不要T我~~哈哈...

不在学校,上网不便,账号未登入时间期限若到~还望别T,呵呵....我喜欢这里~多谢老大!!!!技术成就梦想!!!!!转载于:https://blog.51cto.c…

模拟器显示空白图片_Kawaks街机模拟器,还是小时候的味道!

APP菜园打造属于我们自己的APP帝国1.打开支付宝app,首页搜索 “8221050” 然后点击快捷功能,天天领红包。2.软件领取流程:1.认真阅读下软件介绍;2.找到图片下方的“获取链接”复制;3.打开手机上的浏览器粘贴链接搜索(…

7段均衡器最佳参数_介绍一下十段均衡器的设置和参数

介绍一下十段均衡器的设置和参数【第一章.EQ的基本定义】EQ是Equalizer的缩写,大陆称为均衡器,港台称为等化器。作用是调整各频段信号的增益值。10段均衡器表示有10个可调节节点。节点越多,便可以调节出更精确的曲线,同时难度更大…

ASP.NET Core 查看应用状态和统计

在日常开发中,我们需要关注 .NET 应用的资源使用情况,方便排查问题和扩容。通过 Ajax 请求获取统计信息,展示成图表,如下图:CLRStats 插件,一个统计 .NET 应用资源使用情况的插件,包含&#xff…

circle后面是什么意思 python_Ape circle Python操作-第2-01章-列表操作,小猿圈,作业

# 写代码,有如下列表,按照要求实现每一个功能li [alex, eric, rain]# 计算列表长度并输出length len(li)print(f1-li的长度是:{length})# 列表中追加元素“seven”,并输出添加后的列表li.append(seven)print(2-追加元素后的li是…

python插入排序_python 插入排序,选择排序

插入排序: def insert_sort(lst): for i in range(1,len(lst)): xlst[i] #x是一个临时变量,表示当前轮到的数字 ji #临时变量 j ,为后续的排序提供方便 while j>0 and lst[j-1]>x: #当j 小于0,说明已经数字比较到了第一位,说…

【Vscode】调试DotNet Core代码

Visual Studio作为宇宙第一的IDE,开发调试.net core app,无一能出其右,我们还需要去了解Visual Studio Code吗?答案是肯定。杀鸡焉用牛刀:就一个hello world的Console App,还需要打开Visual Studio吗&#…

Visual Basic、C# 和 C++ 的数据类型比较(转)

类别类名说明Visual Basic 数据类型C# 数据类型C 托管扩展数据类型JScript 数据类型整数Byte8 位的无符号整数。BytebytecharByteDZX7¢&dot [url]www.cnntec.com[/url]…gT‚sSByte8 位的有符号整数。 不符合 CLS。DZX7¢&dot [url]www.cnntec.com[/url]…gT‚…

pandownload 卢本伟_PanDownload复活了!60MB/s!附下载地址

最近几天,听说PanDownload 复活了有人接盘了,重新制作上线推出了更加强劲的复活版!但是笔者去下载了一下,发现并不能使用于是经过百般搜寻,发现被人提供的已经是旧版了于是,我找到了最新版,9月2…

mysql 精度_mysql-笔记 精度

decimal数据类型是fixed-point类型,计算结算是准确的。numeric/dec/fixed / integerfloat/double数据类型是 floating-point类型,计算结果是大约的。float/double/double precision/realDecimal(M,D):M 最大精度位数 1到65D小数位数 0到30,不…

linux安装rz命令_Linux 安装dep安装包命令

rootlsy-ubuntu:~# dpkg -i sublime-text_build-3126_amd64.deb 正在选中未选择的软件包 sublime-text。(正在读取数据库 ... 系统当前共安装有 256092 个文件和目录。)正准备解包 sublime-text_build-3126_amd64.deb ...正在解包 sublime-text (3126) ...正在设置 sublime-tex…

Excel分列功能的妙用

我们用left函数可以将姓名中的姓和名分开了,说实话,这个方法比较笨,因为EXCEL中提供了分列功能。 我们可以看下面这个例子,原始数据中含有编号,而且随着行数的增加,编号位数也在增加,这时就不能…

IdentityServer4之Implicit和纯前端好像很配哦

前言上一篇Resource Owner Password Credentials模式虽然有用户参与,但对于非信任的第三方的来说,使用这种模式是有风险的,所以相对用的不多;这里接着说说implicit隐式模式,这种模式比较适合于纯前端客户端&#xff0c…

libaio.so.1 mysql_libaio.so.1()(64bit) is needed by MySQL-server

从官网下的mysql5.5的server,系统是centos 6.4x86_64,安装时一直报错:[rootdbserver opt]# rpm -ivh MySQL-server-5.5.31-2.el6.x86_64.rpmerror: Failed dependencies:libaio.so.1()(64bit) is needed by MySQL-server-5.5.31-2.el6.x86_64libaio.so.1…

docker 安装kafka_laradock 中如何安装 Laravel Dusk

laradock 中如何安装 Laravel Dusk?导语在本地安装 Laravel Dusk 一直失败,查了文档才发现在 laradock 中并不是只需要 composer require 就可以的,还有其他配置。下面记录一下。配置 laradock1.切换到 laradock 目录中,将 worksp…

.NET 中依赖注入组件 Autofac 的性能漫聊

Autofac 是一款超赞的 .NET IoC 容器 ,在众多性能测评中,它也是表现最优秀的一个。它管理类之间的依赖关系, 从而使 应用在规模及复杂性增长的情况下依然可以轻易地修改。它的实现方式是将常规的.net类当做 组件 处理。简单的性能测试在 LINQPad 中&…

SQLServer事务的隔离级别

事务的隔离级别SQL Server通过在锁资源上使用不同类型的锁来隔离事务。为了开发安全的事务,定义事务内容以及应在何种情况下回滚至关重要,定义如何以及在多长时间内在事务中保持锁定也同等重要。这由隔离级别决定。应用不同的隔离级别,SQL Se…