This Domain(Admin5.com) is for Sale:

如何从ACCESS数据库中读取图形(续)

时间:2007-12-23  来源:不详  作者:迈克DB
注重的是你也可以从一个文件中新建一个位图对象,但使用这样
的方式保存在中的图形格式是浏览器不能够识别的。
当你往中保存图象时,你应该知道你需要使用什么格式来保存
你可以把文件中的每一个字节保存下来,或则通过ACCESS/Foxpro的把图形保存
为一个OLE格式。
你使用什么格式保存图象决定了你在ASP中用什么格式来读出图形来。
具体来说,假如你在ACCESS/FoxPro中将图形保存为bmp,gif,jpeg(
这个必须要使用到ACCESS/FoxPro的OLE对象,即使用ACCESS的插入对象
对话框来完成),这是当你使用
image/bmp时浏览器是不能够解释的。 dedecms.com

现在假设在中保存的是你所想要的图形格式
(GIF, JPEG, BMP, TIFF, 等等等等)现在来看看要怎么把它们从
中读出来。

织梦内容管理系统

在ACCESS中使用了两个要害的技术来保存图形
1。使用了bmp格式
2。78个字节的文件头 dedecms.com

<%
response.Expires = 0
response.Buffer = True
response.Clear
response.contentType = "image/bmp"
%>
接着你要干的就是去掉那78个字节的OLE对象的文件头。
<%
Const OLEHEADERSIZE = 78
nFieldSize = rs("photo").ActualSize
oleHeader = rs("photo").GetChunk(OLEHEADERSIZE)
imageBytes = rs("photo").GetChunk(nFieldSize - OLEHEADERSIZE)
Response.BinaryWrite imageBytes
%>

织梦好,好织梦

现在举一个例子:
假如你要得到一个职工的信息,这段信息包括一个介绍和他的图象。
并且要同时显示文字和图形。
代码如下:(其中的theImg是一个代理页面)
theImg.
<%
response.Expires = 0
response.Buffer = True
response.Clear
response.contentType = Session("ImageType")
response.BinaryWrite Session("ImageBytes")
Session("ImageType") = ""
Session("ImageBytes") = ""
response.End
%>

织梦好,好织梦


Function SetImageForDisplay(field, contentType)
OLEHEADERSIZE = 78
contentType = LCase(contentType)
select case contentType
case "gif", "jpeg", "bmp"
contentType = "image/" & contentType
bytes = field.value
case "ole"
contentType = "image/bmp"
nFieldSize = field.ActualSize
oleHeader = field.GetChunk(OLEHEADERSIZE)
bytes = field.GetChunk(nFieldSize - OLEHEADERSIZE)
end select
Session("imageBytes") = bytes
Session("imageType") = contentType
End Function
'注重的是,程序中只使用了4中格式:gif, jpeg, bmp , ole .

织梦内容管理系统

<%
sql = "select * from Employees"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.CursorLocation = 3
oRS.Open sql, "DSN=NW"
SetImageForDisplay oRS("photo"), "ole"
Set oRS.ActiveConnection = Nothing
%>

内容来自dedecms

要显示图象的话,只需要在另外一个中,假设为getEmpInfo.中
<img src="theImg."</img>
但这还有一个问题,因为对每个职工的图形都使用了同一个"theImg."
文件,应该再小小修改一下:
<img src="theImg.?temp=<%= Request.Form("empLastName")%>"</img>

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息