<
%imgpath
=
"
default_22.gif
"
response.write
"
<img src='
"
&
imgpath
&
"
' border=0
"
&
SetAutoImg(
280
,
260
,imgpath)
&
"
><br>宽:
"
&
GetImgW(ImgPath)
&
"
;高:
"
&
GetImgH(ImgPath)
function
GetImgW(ImgPath)
set
pp
=
new
imgInfo w
=
pp.imgW(server.mappath(ImgPath))
set
pp
=
nothing
GetImgW
=
w
end function
function
GetImgH(ImgPath)
set
pp
=
new
imgInfo h
=
pp.imgH(server.mappath(ImgPath))
set
pp
=
nothing
GetImgH
=
h
end function
function
SetAutoImg(fitWidth,fitHeight,ImgPath) hhRtn
=
0
wwRtn
=
0
set
pp
=
new
imgInfo ww
=
pp.imgW(server.mappath(ImgPath)) hh
=
pp.imgH(server.mappath(ImgPath))
set
pp
=
nothing
if
ww
>
0
and
hh
>
0
then
if
ww
/
hh
>=
FitWidth
/
FitHeight
then
wwRtn
=
fitWidth hhRtn
=
(hh
*
FitWidth)
/
ww
else
hhRtn
=
fitHeight wwRtn
=
(ww
*
FitHeight)
/
hh
end
if
end
if
SetAutoImg
=
"
height='
"
&
hhRtn
&
"
'
"
&
"
width='
"
&
wwRtn
&
"
'
"
end function
class imgInfo
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 err.clear
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)
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)
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)
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)
dim
ret ret
=
0
for
i
=
1
to
lenb(bin) ret
=
ret
*
256
+
ascb(midb(bin,i,
1
))
next
BinVal2
=
ret
End Function
Private
Function
getImageSize(filespec)
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
Public
Function
imgW(pic_path)
Set
fso1
=
server.CreateObject(
"
Scripting.FileSystemObject
"
)
If
(fso1.FileExists(pic_path))
Then
Set
f1
=
fso1.GetFile(pic_path) ext
=
fso1.GetExtensionName(pic_path)
select
case
ext
case
"
gif
"
,
"
bmp
"
,
"
jpg
"
,
"
png
"
: arr
=
getImageSize(f1.path) imgW
=
arr(
1
)
end
select
Set
f1
=
nothing
else
imgW
=
0
End
if
Set
fso1
=
nothing
End Function
Public
Function
imgH(pic_path)
Set
fso1
=
server.CreateObject(
"
Scripting.FileSystemObject
"
)
If
(fso1.FileExists(pic_path))
Then
Set
f1
=
fso1.GetFile(pic_path) ext
=
fso1.GetExtensionName(pic_path)
select
case
ext
case
"
gif
"
,
"
bmp
"
,
"
jpg
"
,
"
png
"
: arr
=
getImageSize(f1.path) imgH
=
arr(
2
)
end
select
Set
f1
=
nothing
else
imgH
=
0
End
if
Set
fso1
=
nothing
End Function
End
Class%
>
转载请注明原文地址: https://ibbs.8miu.com/read-19700.html