zoukankan
html css js c++ java
.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
"
;
}
查看全文
相关阅读:
jvm内存模型
tomcat下出现The file is absent or does not have execute&
linux下安装apache
什么时候能踏上征程?追寻真正的自由和信仰
linux基础命令
UVALive 7263 Today Is a Rainy Day
HDU 6071 Lazy Running
HihoCoder 1634 Puzzle Game
HDU 6228 Tree
HDU 2222 Keywords Search AC自动机模版
原文地址:https://www.cnblogs.com/RobotTech/p/1056138.html
最新文章
Esper系列(十三)Splitting and Duplicating Streams
web前端面试题
git中常见操作指令
报bug mui分享微信 ,qq 分享失败
plus.webview.create( url, id, styles, extras )参数及说明
mui 把内容复制到剪切板
app内区域截图利用html2Canvals保存到手机 截屏 (html2Canvals2版本1.0.0)
app内区域截图利用html2Canvals保存到手机 截屏 (html2Canvas使用版本是:0.5.0-beta3。)
mui H5+ 调取 相册 拍照 功能 上传图片 + 裁剪功能
关于获取webview(窗口间关系)的方法
热门文章
mui.fire()用法
设计模式——观察者
解决百度云离线文件因含有违规内容被系统屏蔽无法下载问题
20130715第一次面试
《驱动力》摘录
linux系统目录结构
linux下登录出现-bash-3.2#解决办法
B+树
linux局域网不能相互访问
MySQL sql 执行步骤
Copyright © 2011-2022 走看看