Red de conocimiento informático - Computadora portátil - ASP detecta el tamaño de la imagen

ASP detecta el tamaño de la imagen

<%

imgpath="default_22.gif"

set pp=new imgInfo

w = pp.imgW(server.mappath(imgpath)) p>

h = pp.imgH(server.mappath(imgpath))

set pp=nada

response.write "
width:"&w&";height:"&h

Clase imgInfo

dim aso

Privado Subclase_ Inicializar

establecer aso=CreateObject("Adodb.Stream")

aso.Mode=3

aso.Type=1

aso.Open

End Sub

Subclase privada_Terminate

err.clear

establecer aso=nada

End Sub

Función privada Bin2Str(Bin)

Dim I, Str

Para I=1 a LenB(Bin)

clow =MidB(Bin,I,1)

si ASCB(clow)<128 entonces

Str = Str & Chr(ASCB(clow))

else

I=I+1

Si I <= LenB(Bin) entonces Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow ))

finalizar si

Siguiente

Bin2Str = Str

Fin de Función

Función Privada Normalizar Normal( Bin, I,1)& Chr(ASCW(MidB(Bin,I,1)&clow)

Función final

Función privada Num2Str(num,base,lens)

dim ret

ret = ""

while(num>=base)

ret = (núm mod base) & ret

num = (num - num mod base)/base

wend

Num2Str = right(string(lens, "0") &num &ret,lens )

Función final

Función privada Str2Num(str,base)

dim ret

ret = 0

para i=1 a len(str)

ret = ret *base + cint(mid(str,i,1))

siguiente

Str2Num =ret

Es

Función d

Función privada BinVal(bin)

dim ret

ret = 0

para i = lenb(bin) a 1 paso -1

ret = ret *256 + ascb(midb(bin,i,1))

siguiente

BinVal=ret

Función final

Función privada BinVal2(bin)

dim ret

ret = 0

para i = 1 a lenb( bin)

ret = ret *256 + ascb(midb(bin, i,1))

siguiente

BinVal2=ret

Función final

Función privada getImageSize(filespec)

dim ret(3)

aso.LoadFromFile(filespec)

bFlag= aso.read(3)

seleccione case hex(binVal (bFlag))

case "4E5089":)=BinVal2(aso.read(2))

caso "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(izquierda( sConv,5),2)

sConv=mid(sConv,6)

mientras(len(sConv)

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)

Ejemplo "FFD8FF":

bucle while p1<255 y no aso.EOS

bucle while true

aso.Read(3)

ret(0)="JPG"

ret(2)=binval2(aso.Read(2))

ret(1)=binval2(aso.Read(2))

caso más:

if left(Bin2Str(bFlag),2)="BM" t

gallina

aso.Read(15)

ret(0)="BMP"

ret(1)=binval(aso.Read(4))

ret(2)=binval(aso.Read(4))

else

ret(0)=""

finalizar si

end select

ret(3)="width=""" & ret(1) &" height=""" & amp; """

getimagesize=ret

Función final

Función pública imgW(pic_path)

Establecer fso1 = server.CreateObject( " Scripting.FileSystemObject")

Si (fso1.FileExists(pic_path)) Entonces

Establezca f1 = fso1.GetFile(pic_path)

ext=fso1.GetExtensionName (pic_path)

Función pública imgW(pic_path)

seleccionar caso text

caso "gif", "bmp", "jpg", "png":

arr=getImageSize(f1.path)

imgW = arr(1 )

finalizar selección

Establecer f1=nada

p>

else

imgW = 0

Finalizar si

Establecer fso1=nada

Finalizar función

Función pública imgH(pic_path)

Establecer fso1 = server.CreateObject("Scripting.FileSystemObject")

Si (fso1.FileExists(pic_path)) Entonces

Establecer f1 = fso1.GetFile(pic_path)

ext=fso1.GetExtensionName(pic_path)

seleccionar caso text

caso " gif", "bmp", "jpg", "png":

arr=getImageSize(f1.path)

imgH = arr(2)

finalizar seleccionar

Establecer f1=nada

más

imgH = 0

Finalizar si

Establecer fso1= nada

Finalizar función

Finalizar clase

%>