|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天成绩原型:http://expert.csdn.net/Expert/topic/2517/2517974.xml?temp=.4831049
在ASP中,我们常常必要在Web页面上显现以二进制体例保留在数据库中的图片。一样平常的图片显现没有甚么成绩,由于这方面的文章已良多了,我就不再论述。但偶然候数据库中的图片是经由过程其他办公软件输出的,大概经由过程其他体例,好比在Access中间接增加。 这时候,图片以OLE工具的体例保留在数据库中,在图片实在内容的后面,还保留了一些其他的信息,好比图片的路径和文件名,等等。假如我们还用一样平常的输入体例的话,就会堕落,招致图片不克不及显现。
幸亏jpeg,bmp等图像格局中在图片内容的开首都有一个SOImarker,这个marker关于jpeg来讲是FFD8,而关于bmp是424D.如许一来,我们只需找到这个marker的地位,就能够疏忽后面的内容而间接从这里入手下手输入图片。以SQLserver为例,代码以下:
<%
---------------------------------
函数:functionShowJpegField(field)
inelm(Archimond【阿克蒙德】)fromcsdn
Date:2003-12-6更新
功效:获得保留jpeg图片的字节数组中的SOImarker入手下手地位,并从该地位输入真实的图片信息
注:jpeg格局的SOImarker:FFD8
bmp格局:424D
参数:图片字段
前往值:无
挪用典范:ShowJpegField(rs("picture1"))
注重:挪用此函数之前,必要先声名response.write的MIME范例为"image/jpeg"
----------------------------------------
functionShowJpegField(field)
dimsize,i,j
要输入字段的总字节数
size=field.ActualSize
轮回找到SOImarker的地位
fori=1tosize
ifAscB(MidB(field,i,1))=&HFFandAscB(MidB(field,i+1,1))=&HD8then
exitfor
endif
next
疏忽后面的无用信息,从SOImarker入手下手输入真实的图片信息
forj=itosize
response.BinaryWriteMidB(field,j,1)
next
endfunction
%>
<%
--------主程序入手下手-------------------
dimconn
setconn=Server.CreateObject("ADODB.Connection")
conn.open("Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=123;DataSource=MARK")
sql="select*fromxinxi_mishuchu"
setrs=conn.execute(sql)
声明输入范例,清空输入缓冲区
response.buffer=true
response.clear
response.ContentType="image/jpeg"
挪用函数输入图片
ShowJpegField(rs("picture1"))
打完收功!
rs.close:setrs=nothing
conn.close:setconn=nothing
%>
假如是其他格局的图片,如bmp,gif等,输入办法相似,只不外是SOImarker分歧罢了。
因为作者程度无限,毛病的地方在所不免,接待人人品评斧正。
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码 |
|