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
"
;
}
查看全文
相关阅读:
代码中莫名其妙多出的空格
hierarchyviewer偶然不能使用的解决方法
HierarchyView的实现原理和Android设备无法使用HierarchyView的解决方法
Android L Ripple的使用
Android2.2 API —— ImageView
android:tint
Android特效--粒子效果之雨
Android 简单的FC
Google开源库-Volley
Css总结
原文地址:https://www.cnblogs.com/RobotTech/p/1056138.html
最新文章
MyEclipse 从数据库反向生成Hibernate实体类
(转)过滤器原理
C#中的Attribute和Java中的Annotation
(转)Struts 拦截器
Struts2 Package
转Java 回调函数的理解
MyEclipse 2014GA 新建 Web Project 并配置 SSH
MyEclipse 利用反向功能生成Java 实体类
Java发送Http请求
Linux: Start and Enable firewall
热门文章
Linux: 查找使用中的port
C#: 根据指定压缩比率压缩图片
C#: 缩放图片
C#: 旋转图片到正确位置
Linux: 一行命令去除文件中所有空行
Android: 录音
Android: 长按及松开处理
工具类网站集合
Android: 关于百度地图缩放级别
FD泄露导致 leaked window 导致App Crash
Copyright © 2011-2022 走看看