Salve a tutti, ho recuperato questo codice in rete per sapere la larghezza e l'altezza di un'immagine salvata in un db. Bene il codice funziona alla grande finchè si tratta di recuperare la larghezza (w), ma quando voglio ricavare l'altezza (h) mi restituisce sempre il valore 36, PERCHE'??????
Qualcuno lo conosce, sapete se c'è un'errore?
Grazie
codice:
function GetBytes(flnm, offset, bytes)
on error resume next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFTemp = objFSO.GetFile(flnm)
lngSize = objFTemp.Size
set objFTemp = nothing
fsoForReading = 1
Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)
if offset > 0 then
strBuff = objTextStream.Read(offset - 1)
end if
if bytes = -1 then
GetBytes = objTextStream.Read(lngSize)
else
GetBytes = objTextStream.Read(bytes)
end if
objTextStream.Close
set objTextStream = nothing
set objFSO = nothing
end function
function lngConvert(strTemp)
lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) *256)))
end function
function lngConvert2(strTemp)
lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) *256)))
end function
function gfxSpex(flnm, width, height, depth, strImageType)
gfxSpex = False
strType = GetBytes(flnm, 0, 3)
strBuff = GetBytes(flnm, 0, -1)
lngSize = len(strBuff)
flgFound = 0
strTarget = chr(255) & chr(216) & chr(255)
flgFound = instr(strBuff, strTarget)
if flgFound = 0 then
exit function
end if
strImageType = "JPG"
lngPos = flgFound + 2
ExitLoop = false
do while ExitLoop = False and lngPos < lngSize
do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos < lngSize
lngPos = lngPos + 1
loop
if asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff, lngPos,1))> 195 then
lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2))
lngPos = lngPos + lngMarkerSize + 1
else
ExitLoop = True
end if
loop
if ExitLoop = False then
Width = -1
Height = -1
Depth = -1
else
Height = lngConvert2(mid(strBuff, lngPos + 4, 2))
Width = lngConvert2(mid(strBuff, lngPos + 6, 2))
Depth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8)
gfxSpex = True
end if
end function
Set objFSO = CreateObject("Scripting.FileSystemObject")
nomefile = Recordset8("Immagine")
Set objF = objFSO.GetFile(Server.MapPath(nomefile))
if gfxSpex(objF.Path, w, h, c, strType) = true then
pdf.SetXY 112,80
pdf.setfillcolor 255,255,255
pdf.Cell 0,0, "MISURE :" &h
end if
set objF = nothing
set objFSO = nothing