<%
Class ImgWHInfo '' Файлы изображений в формате JPG, GIF, PNG, BMP
Дим АСО
Частный подкласс_инициализировать
Установите ASO=Server.CreateObject(ADODB.Stream)
ASO.Mode=3
ASO.Тип=1
ASO.Открыть
Конец субтитра
Частный подкласс_Terminate
Ошиб.Очистить
Установить ASO=Ничего
Конец субтитра
Частная функция Bin2Str(Bin)
Дим И, ул.
Для I=1 в LenB(Bin)
clow=MidB(Бин,I,1)
Если ASCB(clow)<128 Тогда
Str = Str & Chr(ASCB(клоу))
Еще
Я=Я+1
Если I <= LenB(Bin), то Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
Конец, если
Следующий
Bin2Str = Str
Конечная функция
Частная функция Num2Str(Num,Base,Lens)
Дим Рет
Рет =
Пока(Число>=База)
Ret = (Num Mod Base) & Ret
Число = (Число - Число Мод. База)/База
Венд
Num2Str = Вправо(Строка(Линза,0) & Num & Ret,Линза)
Конечная функция
Частная функция Str2Num(Str,Base)
Дим Рет, я
Рет = 0
Для I=1 To Len(Str)
Ret = Ret *base + Cint(Mid(Str,I,1))
Следующий
Str2Num=Сбросить
Конечная функция
Частная функция BinVal(Bin)
Дим Рет, я
Рет = 0
Для I = LenB(Bin) To 1 Шаг -1
Ret = Ret *256 + AscB(MidB(Bin,I,1))
Следующий
BinVal=Сбросить
Конечная функция
Частная функция BinVal2(Bin)
Дим Рет, я
Рет = 0
Для I = 1 To LenB(Bin)
Ret = Ret *256 + AscB(MidB(Bin,I,1))
Следующий
BinVal2=Сбросить
Конечная функция
Частная функция GetImageSize(filespec)
Тусклый бфлаг
Дим Рет(3)
ASO.LoadFromFile(спецификация файла)
bFlag=ASO.Чтение(3)
Выберите регистр Hex(binVal(bFlag))
Случай 4E5089:
ASO.Читать(15)
рет(0)=ПНГ
ret(1)=BinVal2(ASO.Read(2))
ASO.Читать(2)
ret(2)=BinVal2(ASO.Read(2))
Дело 464947:
ASO.читать(3)
ret(0)=гиф
ret(1)=BinVal(ASO.Read(2))
ret(2)=BinVal(ASO.Read(2))
Дело 535746:
ASO.читать(5)
binData=ASO.Чтение(1)
sConv=Num2Str(ascb(binData),2,8)
nBits=Str2Num(слева(sConv,5),2)
sConv=mid(sConv,6)
Пока(len(sConv)<nBits*4)
binData=ASO.Чтение(1)
sConv=sConv&Num2Str(AscB(binData),2,8)
Венд
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)
Корпус FFD8FF:
Делать
Выполните: p1=binVal(ASO.Read(1)): Цикл, пока p1=255, а не ASO.EOS
Если p1>191 и p1<196, то выйти Do Else ASO.read(binval2(ASO.Read(2))-2)
Do:p1=binVal(ASO.Read(1)): Цикл, пока p1<255, а не ASO.EOS
Цикл, пока true
ASO.Читать(3)
врет(0)=JPG
ret(2)=binval2(ASO.Read(2))
ret(1)=binval2(ASO.Read(2))
Другой случай:
Если left(Bin2Str(bFlag),2)=BM Тогда
ASO.Читать(15)
врет(0)=БМП
ret(1)=binval(ASO.Read(4))
ret(2)=binval(ASO.Read(4))
Еще
врет(0)=
Конец, если
Конец выбора
ret(3)=width= & ret(1) & height= & ret(2) &
getimagesize=рет
Конечная функция
Открытая функция imgW(IMGPath)
Тусклый FSO,IMGFile,FileExt,Arr
Установите FSO = Server.CreateObject(Scripting.FileSystemObject)
Если (FSO.FileExists(IMGPath)) Тогда
Установите IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
Выберите файл делаExt.
Чехол gif,bmp,jpg,png:
Arr=GetImageSize(IMGFile.Path)
imgW = Арр(1)
Конец выбора
Установить IMGFile=Ничего
Еще
imgW = 0
Конец, если
Установить FSO=Ничего
Конечная функция
Открытая функция imgH(IMGPath)
Тусклый FSO,IMGFile,FileExt,Arr
Установите FSO = server.CreateObject(Scripting.FileSystemObject)
Если (FSO.FileExists(IMGPath)) Тогда
Установите IMGFile = FSO.GetFile(IMGPath)
FileExt=FSO.GetExtensionName(IMGPath)
Выберите файл делаExt.
Чехол gif,bmp,jpg,png:
Arr=getImageSize(IMGFile.Path)
imgH = Арр(2)
Конец выбора
Установить IMGFile=Ничего
Еще
imgH = 0
Конец, если
Установить FSO=Ничего
Конечная функция
Конечный класс
%>
<%
IMGPath=Test.jpg
Установить PP = Новый ImgWHInfo
W = PP.imgW(Server.Mappath(IMGPath))
H = PP.imgH(Server.Mappath(IMGPath))
Установить pp = Ничего
%>
<%
Тусклый Ш, PXВысота
Dim Pp '//Пропорция
Если W=0 или W= Тогда
ПХВидс=0
ПХХигхт=0
Еще
Pp=FormatNumber(W/H,2) '//长宽比
Конец, если
Если W>=H Тогда
Если W>=300 Тогда
ПХВидс=300
PXHeight=НомерФормата(300/Пп,0)
Еще
PXWidth=W
PXHeight=H
Конец, если
Еще
Если PHeight>=260 Тогда
ПХВысота=260
PXWidth=НомерФормата(260*Пп,0)
Еще
PXWidth=W
PXHeight=H
Конец, если
Конец, если
ответ.Запись(PXWidth)
%>
<img src=Test.jpg border=0 width=<%=PXWidth%>
высота=<%=PXHeight%>>