pagetitle2 = inputbox("请输入页面标题","请输入页面标题",pagetitle) if isempty(pagetitle2) = false and len(pagetitle2) > 1 then pagetitle = pagetitle2 end if
filenamestart2 = inputbox("请输入文件名前缀","请输入文件名前缀",filenamestart) if isempty(filenamestart2) = false and len(filenamestart2) > 1 then filenamestart = filenamestart2 end if
firstpage2 = inputbox("请输入第一页的文件名,点取消按序号生成","请输入第一页的文件名",firstpage) if isempty(firstpage2) = false and len(filenamestart2) > 1 then firstpage = firstpage2 else firstpage = "" end if
if len(firstpage) > 0 and (right(lcase(firstpage),4)<>".htm" and right(lcase(firstpage),5)<>".html") then firstpage = firstpage & ".htm" end if
imgw2 = inputbox("请输入小图的宽度","请输入小图的宽度",imgw) if isnumeric(imgw2) and isempty(imgw2) = false then imgw = imgw2 end if
imgh2 = inputbox("请输入小图的高度","请输入小图的高度",imgh) if isnumeric(imgh2) and isempty(imgh2) = false then imgh = imgh2 end if
wn2 = inputbox("请输入每行的图像数","请输入每行的图像数",wn) if isnumeric(wn2) and isempty(wn2) = false then wn = wn2 end if
hn2 = inputbox("请输入行数","请输入行数",hn) if isnumeric(hn2) and isempty(hn2) = false then hn = hn2 end if
dim info info = "<!-- 本页面有 VBScript 相册生成脚本生成,http://www.51windows.Net -->" pagesize = wn*hn
dim StartRun StartRun = msgbox(message,1,"VBS相册生成脚本")
if StartRun=1 then CreatPageHtml(FileInofList(cpath)) end if
function FileInofList(cpath) ON ERROR RESUME NEXT dim FileNameListStr FileNameListStr="" filesize = 0 if fsoBrowse.FolderExists(cpath)then Set theFolder=fsoBrowse.GetFolder(cpath) Set theFiles=theFolder.Files For Each x In theFiles if right(lcase(x.name),4) = ".gif" or right(lcase(x.name),4) = ".png" or right(lcase(x.name),4) = ".jpg" then if x.Size>0 then set qswh=new qswhImg arr=qswh.getimagesize(cpath & "" & x.name)"取得图片的扩展名,高宽信息 dim imgext,imgWidth,imgheight imgext = arr(0) imgWidth = arr(1) imgheight = arr(2) if lcase(imgext) = "gif" or lcase(imgext) = "jpg" or lcase(imgext) = "png" then FileNameListStr = FileNameListStr & x.name & "|"& x.Size &"|"& imgWidth & "|" & imgheight &"***" end if end if end if next end if set fsoBrowse = nothing if len(FileNameListStr)>3 then FileNameListStr = left(FileNameListStr,len(FileNameListStr)-3) end if FileInofList = FileNameListStr if err<>0 then msgbox "FileInofList 出错了:" & err.description err.clear end if end function
sub CreatPageHtml(ListStr) ON ERROR RESUME NEXT dim filenamearr,filenamenum,outstr filenamearr = split(ListStr,"***") filenamenum = ubound(filenamearr) outstr = "" for a = 0 to filenamenum thisstr = filenamearr(a) thisstrarr = split(thisstr,"|") if ubound(thisstrarr) = 3 then dim w,h w = thisstrarr(2) h = thisstrarr(3) okw = imgw okh = imgh if (w/h)>(imgw/imgh) then if int(w)>=int(imgw) then okw = imgw okh = formatnumber(h*imgw/w,0) else okw = w okh = h end if else if int(h)>=int(imgh) then okh = imgh okw = formatnumber(w*imgh/h,0) else okw = w okh = h end if end if dim vspace vspace = 0 if int(imgh)>int(okh) then vspace = formatnumber((imgh-okh)/2,0)-3 end if if int(vspace)<1 then vspace = 0 end if outstr = outstr & "<div class=""oneDiv"">" & vbnewline outstr = outstr & " <div class=""ImgDiv""><a href="""& thisstrarr(0) &""" onclick=""ShowImg(this.href,"& w &","& h &");return false""><img border=""0"" title="""& thisstrarr(0) &"("& thisstrarr(1) &" byte)"" alt="""& thisstrarr(0) &""" src="""& thisstrarr(0) &""" align=""center"" hspace=""0"" vspace="""& vspace &""" width="""& okw &""" height="""& okh &"""></a></div>" & vbnewline outstr = outstr & " <div class=""TextDiv""><a href="""& thisstrarr(0) &""" onclick=""ShowImg(this.href,"& w &","& h &");return false"">"& thisstrarr(0) &"</a></div>" & vbnewline outstr = outstr & "</div>" & vbnewline end if if ((a+1) mod pagesize = 0) or (a = filenamenum) then dim n1,nn n1 = formatnumber(((a+1)/pagesize+0.49999),0) nn = formatnumber((filenamenum+1)/pagesize+0.49999,0) pagestr = "<div>" if int(pagesize) = 1 then nn = int(nn)+1 end if for b = 1 to nn bb = addzero(b,nn) if int(b)<>int(n1) then if int(b) = 1 and firstpage<>"" then pagestr = pagestr & " <a href="""& firstpage &""">"& bb &"</a> " else pagestr = pagestr & " <a href="""& filenamestart &""& bb &".htm"">"& bb &"</a> " end if else pagestr = pagestr & " "& bb &" " end if next pagestr = pagestr & "</div><div align=""center"">" if int(n1) = 1 then pagestr = pagestr & "<span id=""PrevLink"">[ Prev ]</span>" else if int(n1) = 2 and firstpage<>"" then pagestr = pagestr & "[ <a id=""PrevLink"" href="""& firstpage &""">Prev</a> ]" else pagestr = pagestr & "[ <a id=""PrevLink"" href="""& filenamestart &""& addzero((n1-1),nn) &".htm"">Prev</a> ]" end if end if if int(n1) = int(nn) then pagestr = pagestr & "<span id=""NextLink"">[ Next ]</span>" else pagestr = pagestr & "[ <a id=""NextLink"" href="""& filenamestart &""& addzero((n1+1),nn) &".htm"">Next</a> ]" end if
if int(nn) > 1 then pagestr = "<div class=""pageDiv"">"& pagestr & "</div></div>" else pagestr = "" end if if int(n1) = 1 and firstpage<>"" then creatfile outstr,pagestr,"/"& firstpage else creatfile outstr,pagestr,"/"& filenamestart &""& addzero(n1,nn) &".htm" end if outstr = "" end if next if err=0 then msgbox "文件已生成" else msgbox "CreatPageHtml 出错了:" & err.description err.clear end if end sub
function addzero(num1,numn) addzero = right("00000000"&num1,len(numn)) end function
function formattitle(str) str1 = str str1 = replace(str1,"""",""") formattitle = str1 end function
Set fso = CreateObject("Scripting.FileSystemObject") Set fout = fso.CreateTextFile(cpath&name,true,false) fout.WriteLine htmlstr fout.close set fso = nothing if err<>0 then msgbox "creatfile 出错了:" & err.description err.clear end if end sub
Class qswhImg dim aso Private Sub Class_Initialize set aso=CreateObject("Adodb.Stream") aso.Mode=3 aso.Type=1 aso.Open End Sub Private Sub Class_Terminate set aso=nothing End Sub
Private Function Bin2Str(Bin) Dim I, Str For I=1 to LenB(Bin) clow=MidB(Bin,I,1) if ASCB(clow)<128 then Str = Str & Chr(ASCB(clow)) else I=I+1 if I <= LenB(Bin) then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow)) end if Next Bin2Str = Str End Function
Private Function Num2Str(num,base,lens) "qiushuiwuhen (2002-8-12) dim ret ret = "" while(num>=base) ret = (num mod base) & ret num = (num - num mod base)/base wend Num2Str = right(string(lens,"0") & num & ret,lens) End Function
Private Function Str2Num(str,base) "qiushuiwuhen (2002-8-12) dim ret ret = 0 for i=1 to len(str) ret = ret *base + cint(mid(str,i,1)) next Str2Num=ret End Function
Private Function BinVal(bin) "qiushuiwuhen (2002-8-12) dim ret ret = 0 for i = lenb(bin) to 1 step -1 ret = ret *256 + ascb(midb(bin,i,1)) next BinVal=ret End Function
Private Function BinVal2(bin) "qiushuiwuhen (2002-8-12) dim ret ret = 0 for i = 1 to lenb(bin) ret = ret *256 + ascb(midb(bin,i,1)) next BinVal2=ret End Function
Function getImageSize(filespec) "qiushuiwuhen (2002-9-3) dim ret(3) aso.LoadFromFile(filespec) bFlag=aso.read(3) select case hex(binVal(bFlag)) case "4E5089": aso.read(15) ret(0)="PNG" ret(1)=BinVal2(aso.read(2)) aso.read(2) ret(2)=BinVal2(aso.read(2)) case "464947": aso.read(3) ret(0)="GIF" ret(1)=BinVal(aso.read(2)) ret(2)=BinVal(aso.read(2)) case "535746": aso.read(5) binData=aso.Read(1) sConv=Num2Str(ascb(binData),2 ,8) nBits=Str2Num(left(sConv,5),2) sConv=mid(sConv,6) while(len(sConv)<nBits*4) binData=aso.Read(1) sConv=sConv&Num2Str(ascb(binData),2 ,8) wend ret(0)="SWF" ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20) ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20) case "FFD8FF": do do: p1=binVal(aso.Read(1)): loop while p1=255 and not aso.EOS if p1>191 and p1<196 then exit do else aso.read(binval2(aso.Read(2))-2) do:p1=binVal(aso.Read(1)):loop while p1<255 and not aso.EOS loop while true aso.Read(3) ret(0)="JPG" ret(2)=binval2(aso.Read(2)) ret(1)=binval2(aso.Read(2)) case else: if left(Bin2Str(bFlag),2)="BM" then aso.Read(15) ret(0)="BMP" ret(1)=binval(aso.Read(4)) ret(2)=binval(aso.Read(4)) else ret(0)="" end if end select ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &"""" getimagesize=ret End Function End Class