导航:首页 > 图片大全 > 如何读取二进制储存的图片

如何读取二进制储存的图片

发布时间:2022-12-08 07:23:53

‘壹’ asp怎么读取存取在数据库里二进制图片呢江湖告急!

1.将Image图像文件存入到数据库中

我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.

要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.

//根据文件名(完全路径)
public byte[] SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, 0, streamLength);
fs.Close();
return image;
}

//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte[] SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];
stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength);
stream.Close();
return photo;
}

2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件

//要使用SqlDataReader要加载using System.Data.SqlClient命名空间
//将数据库中的Image类型转换成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
}

//将byte[]转换成Image图像类型
//加载以下命名空间using System.Drawing;/using System.IO;
using System.Data.SqlClient;*/
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}

‘贰’ 如何将图片用二进制格式读取高手请进

FILE
*pFile=fopen("C:\\aaa.bmp","rb");
BYTE
buf[MAXLEN]={0};//MAXLEN图片大小自己确定,也可以动态分配.
int
Size=fread(buf,1,MAXLEN,pFile);
//size是实际读取的大小,buf中就是存的你想要的数据了.

‘叁’ 怎样读取数据库中存储的二进制图片文件

下面我们将示例一个图片文件读取存储至数据库并从数据库中读取图片信息并显示的案例:
1、首先读取硬盘上的某一具体图片文件,读取模式设置为readBinary方式:
<cffile
action
=
"readBinary"
file
=
"temp
directory
here#file.serverFile#"
variable
=
"test">
2、将读取出来的二进制内容存储至数据库中(注:数据库字段需设置成能存储图片类型的字段,如blob类型):
<cfquery
datasource
=
"datasource">
insert
into
imageTest
values
(<cfqueryparam
cfsqltype="cf_sql_blob"
value="#test#">)
</cfquery>
通过1、2两个步骤,我们轻松实现了读取图片文件并存储至数据库的操作过程。
3、从数据库中读取图片信息,该文件可命名为dispImage.cfm:
<!---
在此需特别注意enablecfoutputonly的压缩空白功能,如果不对该页面进行空白压缩,很可能会造成图片无法显示的问题
--->
<cfprocessingdirective
suppressWhiteSpace="yes">
<cfsetting
enablecfoutputonly="yes">
<!---
读取相应的图片信息
--->
<cfquery
datasource
=
"datasource">
select
image
from
imageTest
where
variable
here#
</cfquery>
<!---
设置浏览器输出的格式,我们将它设置为图片的JPG类型,用户可根据实际情况改动类型设置
--->
<cfcontent
type="image/jpg">
<!---
输出图片
--->
<cfoutput>#toString(imageTest.image)#</cfoutput>
</cfprocessingdirective>
<cfabort>
4、显示图片内容,调用dispImage.cfm页面:
<img
src
=
"dispImage.cfm?id=your
variable
here">
通过3、4两个步骤,我们也很容易的就完成了从数据库中读取图片信息并在页面显示的功能。
总结:实际上,除了图片文件可以如此处理,其它的文件也能通过类似方式进行处理,可将任意文件类型存储至数据库,只是文件大小的原因以及数据库存储读取速度性能限制,我们基本上还是不建议将文件存储至数据库,毕竟硬盘读取要快得多。

‘肆’ 如何将数据库中的图片(二进制),读出并显示在界面的Image控件[VB6.0]

摘 要 本文以VB6与Access97作为开发工具,介绍了图像在数据库中的存储与显示技术。

关键词 数据库,数据控件,二进制,图像存储,图像显示,ADODB,Recordset

数据库是数据管理的最新技术,是计算机科学的重要分支,是现代计算机信息系统和计算机应用的基础和核心。在科学技术高速发展的今天,在信息资源无处不在、无处不用,已成为各部门的重要财富的时候,对于从事程序开发的人员来说显得尤为重要。

如今,对数据库的操作不仅仅满足于对字符和数字的单一操作,图像的存储与显示已显得尤为重要。下面作者将以VB6.0与Access97作为开发工具,分别介绍两种图像显示与存储的方法。

利用数据控件和数据绑定控件

利用这种方法,不写或写少量代码就可以构造简单的数据库应用程序,这种方法易于被初学者接受。在举例之前,先把数据绑定功能简要的说明一下,凡是具有DataSource属性的控件都是对数据敏感的,它们都能通过数据控件直接使用数据库里的数据。比如CheckBox Control , ComboBox Comtrol , TextBox Comtrol , PictureBox Control ,Image Comtrol … 因为这种方式涉及到的知识点比较少,也比较容易理解,不多作说明,现直接介绍编程步骤。

1、从数据库中显示所需要的图片

首先,添加一个Data数据控件,设置它的DatabaseName和RecordSource属性,

strPath = App.Path
If Right(strPath, 1) <> "\" Then
strPath = strPath & "\"
MyData.DatabaseName = strPath & "ExampleDB.mdb" '数据库存地址
MyData.RecordSource = "Info" '表名

第二步,添加Image控件用来显示图片,设置它的DataSource和DataField属性。例如本例中: Image1.DataSource="MyData"和Image1.DataField=" MyPhoto" 。然后设置其它具有数据绑定功能的控件用来显示所要的其它内容,经过这两步的操作,运行程序就可以显示你要的数据了。

2、向数据库中添加需要存储的图片

首先,利用数据控件所具有的AddNew属性,添加一个按钮,双击后添加如下代码MyData.Recordset.AddNew

第二步,为Image控件图片指定图片路径Image1.Picture = LoadPicture("图片路径"),经过这两步的操作,就可以向数据库中添加图片了。

这种方法最简单快捷,要写的代码量很少。但是这种方法在运行速度和灵活性方面有一定的限制,适合于初学者和一些简单的应用,要想灵活多变的显示图像,下面介绍的方法或许更适应您的要求。

利用编写代码实现图片的存储与显示

这种方法相对于方法一来说,代码量大,但是它操作灵活,能够满足多样形式下的操作,受到更多编程者的青睐。但是涉及到的知识面相对要多一些,不仅要掌握数据库的操作方法,还要二进制文件的读写作进一步的了解。关于数据库及二进制文件的基本操作很多参考书上都介绍的比较详细,需要时请查阅即可。在编程之前把本部分用到的变量说明如下:

Dim RS As New ADODB.Recordset
Dim Chunk() As Byte
Const ChunkSize As Integer = 2384
Dim DataFile As Integer, Chunks, Fragment As Integer
Dim MediaTemp As String
Dim lngOffset, lngTotalSize As Long
Dim i As Integer

1、从数据库中显示所需要的图片

第一步首先打开数据库,看有没有要查找的内容,有则继续执行,没有就退出

RS.Source = "select * from Info Where Name='" & sparaName &"';"
RS.ActiveConnection = "UID=;PWD=;DSN=TestDB;"
RS.Open
If RS.EOF Then RS.cCose : Exit Sub

第二步,读出长二进制数据即图片数据,把它转换成图片文件,操作过程如下

MediaTemp = strPath & "picturetemp.tmp"
DataFile = 1
Open MediaTemp For Binary Access Write As DataFile
lngTotalSize = RS!MyPhoto.ActualSize
Chunks = lngTotalSize \ ChunkSize
Fragment = lngTotalSize Mod ChunkSize
ReDim Chunk(Fragment)
Chunk() = RS!MyPhoto.GetChunk(Fragment)
Put DataFile, , Chunk()
For i = 1 To Chunks
ReDim Chunk(ChunkSize)
Chunk() = RS!MyPhoto.GetChunk(ChunkSize)
Put DataFile, , Chunk()
Next i
Close DataFile

第三步,关闭数据库,这样就可以显示所要的图片了。

RS.Close
If MediaTemp = "" Then Exit Sub
Picture1.Picture = LoadPicture(MediaTemp)
If Picture1.Picture = 0 Then Exit Subj

2、向数据库中添加需要存储的图片

向数据库添加存储的图片是显示图片逆过程,只要掌握了显示图片的操作,存储图片的操作也就迎刃而解了,下面将操作步骤介绍如下

第一步首先打开数据库,过程如下:

RS.Source = "select * from Info ;"
RS.CursorType = adOpenKeyset
RS.LockType = adLockOptimistic
RS.ActiveConnection = "UID=;PWD=;DSN=TestDB;"
RS.Open

第二步,把要存储的图片转换成二进制长文件存入数据库中,操作过程如下

RS.AddNew
DataFile = 1
Open strPathPicture For Binary Access Read As DataFile
FileLen = LOF(DataFile) ' 文件中数据长度
If FileLen = 0 Then : Close DataFile : RS.Close : Exit Sub
Chunks = FileLen \ ChunkSize
Fragment = FileLen Mod ChunkSize
ReDim Chunk(Fragment)
Get DataFile, , Chunk()
RS!MyPhoto.AppendChunk Chunk()
ReDim Chunk(ChunkSize)
For i = 1 To Chunks
Get DataFile, , Chunk()
RS!MyPhoto.AppendChunk Chunk()
Next i
Close DataFile

第三步,更新纪录后,关闭数据库,就完成了数据图片到数据库的存储。

RS.Update
RS.Close
Set RS = Nothing

两种方法在使用方面各有所长,读者可以针对自己的情况做出合理的选择。

方法很容易实现的.和楼上的不太一样.

‘伍’ 怎样用vb 的image控件读取ACCESS中以二进制保存的图片

如果在数据库已经存在这个二进制图片数据,那么:
msRS.Type = adTypeBinary ' msRS 是图片存储、读取记录集对象(msRS As New ADODB.Stream)
msRS.Open
msRS.Write RS!图片
msRS.SaveToFile App.Path & "\A.gif", adSaveCreateOverWrite 'A.gif是图片临时存储文件,在程序根目录必须有这个文件
Image1.Picture = LoadPicture(App.Path & "\A.gif")
msRS.Close

阅读全文

与如何读取二进制储存的图片相关的资料

热点内容
宝塔的简笔画图片大全 浏览:123
感到很可爱的图片 浏览:657
word文件拉伸图片时候变形 浏览:886
动漫大头男生图片高清 浏览:270
绘画图片男生霸气高清 浏览:798
怎么利用word让图片字迹变清晰 浏览:322
草图模型衣服货架图片 浏览:989
专属小傻瓜文字图片 浏览:485
网吧男生背影图片 浏览:939
冷漠的男生图片 浏览:309
可爱小猫图片动漫人物 浏览:269
招财猫可爱的高清图片 浏览:598
白珊瑚图片及价格表 浏览:469
wps如何把pdf图片合成一张a4打印 浏览:209
ps如何在图片上加线圈 浏览:901
男生头像背影图片可爱高清 浏览:384
男生摸头发笑动漫图片 浏览:921
未成年宫野动漫图片 浏览:762
怎么扩大图片储存 浏览:804
小女孩疝气的图片大 浏览:286