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

Rispondi quotando