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
"
;
}
查看全文
相关阅读:
IDEA工具java开发之 开发中必会的技能
IDEA工具java开发之项目初始化配置 细节和目录结构
有关java编辑改变编码器时出现HelloWorld.java:3: 错误: 编码GBK的不可映射字符 * 瀹冨皢鎵撳嵃瀛楃�涓? Hello World
java开发环境的搭建 第一步安装JDK 第二步配置环境变量 检查java中的jdk是否安装成功
解决vue中使用echarts的formatter提示警告的问题
数组去重及element UI 远程模糊查询
有关echar图设置宽度100%不起作用的问题
echarts 中的bar3D柱子图在geo3D地图中显示不出来
【SQL】约束
【SQL】视图
原文地址:https://www.cnblogs.com/RobotTech/p/1056138.html
最新文章
优雅的使用BeanUtils对List集合的操作
Spring注解之@Autowired、@Qualifier、@Resource、@Value
深入JAVA注解-Annotation(学习过程)
Java 高效代码50例
Elasticsearch介绍和安装
深入谷歌和甲骨文旷日持久的版权战争,趣味科普当前最火的编程语言JAVA的前世今生
npm脚本和package.json
学习linux命令,看这篇2w多字的linux命令详解
java 基于Tesseract实现图片文字识别
BatchNorm caffe源码
热门文章
cbow&&skipgram详细
hive数据倾斜问题
drop out为什么能够防止过拟合
二叉树-专题
链表-专题
动态规划-专题
xgboost gbdt特征点分烈点
Isolate randomforest检测异常点的非监督方法
IDEA工具java开发之 运行与调试
IDEA工具java开发之 开启一个java项目
Copyright © 2011-2022 走看看