Visualizzazione dei risultati da 1 a 6 su 6

Discussione: immagini

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    258

    immagini

    ciao a tutti
    qualcuno sa come si trovano l'altezza e la lunghezza di un'immagine con asp? E' possibile?

    grazie
    ste

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Esempio.

    codice:
    function getSize(URL, width, height, depth, flType) 
        dim PNGflType 
        dim GIFflType 
        dim BMPflType 
        dim flTypeOf 
        dim obj 
        flTypeOf = "" 
        flType = "(unknown)" 
        Set obj = Server.CreateObject ("Microsoft.XMLHTTP") 
        obj.open "GET", URL, False 
        obj.send 
        'Here we have gotten the data for the image file 
        getSize = False 
        PNGflType = chr(137) & chr(80) & chr(78) 
        GIFflType = chrb(71) & chrb(73) & chrb(70) 
        BMPflType = chr(66) & chr(77) 
        'Here are the definitions for the image flTypes, I only support GIF and JPG but you can add others :) 
        flTypeOf = GetBytes(obj, 0, 3) 
        'Find out what flType of image it is 
        if flTypeOf = GIFflType then    'It is a GIF!!! 
        flType = "GIF"     
        strbuffer = getbytes(obj, 0, -1) 'get all of the data of the image 
        width= lngconvert(midb(strbuffer, 7, 2)) 
        Height = lngconvert(midb(strbuffer, 9, 2)) 
        Depth = 2 ^ ((ascb(GetBytes(obj, 11, 1)) and 7) + 1) 
        'It is very important to note the ascB and midB, images ARE binary files 
        getSize = True 
        else 
        strBuff = GetBytes(obj, 0, -1)        ' get the entire file 
        SizeofFile = lenb(strBuff) 
        flgFound = 0 
        strTarget = chrb(255) & chrb(216) & chrb(255) 
        flgFound = instrb(strBuff, strTarget) 
        char = (midb(strbuff, 1, 3)) 'check out the first few characters 
        if flgFound = 0 then 'not a jpg, and definatly not a GIF 
         exit function 
        end if 
        flType = "JPG" 
        lngPos = flgFound + 2 
        ExitLoop = false 
        do while ExitLoop = False and lngPos < SizeofFile 
              do while ascb(midb(strBuff, lngPos, 1)) = 255 and lngPos < SizeofFile 
                 lngPos = lngPos + 1 
              loop 
              'search through to find the data 
              if ascb(midb(strBuff, lngPos, 1)) < 192 or ascb(midb(strBuff, lngPos, 1)) > 195 then 
                 lngMarkerSize = lngConvert2(midb(strBuff, lngPos + 1, 2)) 
                 lngPos = lngPos + lngMarkerSize  + 1 
              else 
                 ExitLoop = True 'have everything we need 
              end if 
    
        loop 
    
              if ExitLoop = False then 'oh no! 
    
                 Width = -1 
                 Height = -1 
                 Depth = -1 
        
              else 
    
                 Height = lngConvert2(midb(strBuff, lngPos + 4, 2)) 
                 Width = lngConvert2(midb(strBuff, lngPos + 6, 2)) 
                 Depth = 2 ^ (ascb(midb(strBuff, lngPos + 8, 1)) * 8) 
                 getSize = True 
    
              end if 
                      
        end if 
      
        set obj = Nothing 
    end function
    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    258
    Grazie mille!!

    l'ho appena provato ma mi da errore su questa riga
    Set obj = Server.CreateObject ("Microsoft.XMLHTTP")

    devo installare qualche cosa?
    ste

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    258
    mi sta venendo un dubbio... :master:
    ma in URL devo mettere il percorso per arrivare all'immagine giusto?
    es.
    foto_prodotti/img1.jpg
    ste

  5. #5
    Come fai a chiamare questa funzione?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    258
    fatto!! riposto tutto il codice funzionante
    grazie mille per l'aiuto!!


    <%@language=vbscript%>
    <%
    function GetBytes(objHTTP, offset, bytes)

    Dim SizeofFile
    on error resume next
    SizeofFile = objHTTP.getResponseHeader("Content-Length")
    'gets the size of the file from the HTTP header
    if offset > 0 then 'start getting bytes NOT at the beginning
    strbuff = midb(objHTTP.responseBody, offset, bytes)
    end if
    if bytes = -1 then ' Get All!
    GetBytes = objHTTP.responseBody 'ReadAll
    else 'start at front and go some odd distance
    GetBytes = midb(objHTTP.responseBody, 1, bytes)
    end if
    end function


    function lngConvert(strTemp)
    lngConvert = clng(ascb(leftb(strTemp, 1)) + ((ascb(rightb(strTemp, 1)) * 256)))
    end function

    function lngConvert2(strTemp)
    lngConvert2 = clng(ascb(rightb(strTemp, 1)) + ((ascb(leftb(strTemp, 1)) * 256)))
    end function
    'lngconvert was taken from Mike Shaffer's IMGSZ

    function getSize(URL, width, height, depth, flType)

    dim PNGflType
    dim GIFflType
    dim BMPflType
    dim flTypeOf
    dim obj
    flTypeOf = ""
    flType = "(unknown)"
    Set obj = Server.CreateObject ("Microsoft.XMLHTTP")
    obj.open "GET", URL, False
    obj.send
    'Here we have gotten the data for the image file
    getSize = False
    PNGflType = chr(137) & chr(80) & chr(78)
    GIFflType = chrb(71) & chrb(73) & chrb(70)
    BMPflType = chr(66) & chr(77)
    'Here are the definitions for the image flTypes, I only support GIF and JPG but you can add others
    flTypeOf = GetBytes(obj, 0, 3)
    'Find out what flType of image it is
    if flTypeOf = GIFflType then 'It is a GIF!!!
    flType = "GIF"
    strbuffer = getbytes(obj, 0, -1) 'get all of the data of the image
    width= lngconvert(midb(strbuffer, 7, 2))
    Height = lngconvert(midb(strbuffer, 9, 2))
    Depth = 2 ^ ((ascb(GetBytes(obj, 11, 1)) and 7) + 1)
    'It is very important to note the ascB and midB, images ARE binary files
    getSize = True
    else
    strBuff = GetBytes(obj, 0, -1) ' get the entire file
    SizeofFile = lenb(strBuff)
    flgFound = 0
    strTarget = chrb(255) & chrb(216) & chrb(255)
    flgFound = instrb(strBuff, strTarget)
    char = (midb(strbuff, 1, 3)) 'check out the first few characters
    if flgFound = 0 then 'not a jpg, and definatly not a GIF
    exit function
    end if
    flType = "JPG"
    lngPos = flgFound + 2
    ExitLoop = false
    do while ExitLoop = False and lngPos < SizeofFile
    do while ascb(midb(strBuff, lngPos, 1)) = 255 and lngPos < SizeofFile
    lngPos = lngPos + 1
    loop
    'search through to find the data
    if ascb(midb(strBuff, lngPos, 1)) < 192 or ascb(midb(strBuff, lngPos, 1)) > 195 then
    lngMarkerSize = lngConvert2(midb(strBuff, lngPos + 1, 2))
    lngPos = lngPos + lngMarkerSize + 1
    else
    ExitLoop = True 'have everything we need
    end if

    loop

    if ExitLoop = False then 'oh no!

    Width = -1
    Height = -1
    Depth = -1

    else

    Height = lngConvert2(midb(strBuff, lngPos + 4, 2))
    Width = lngConvert2(midb(strBuff, lngPos + 6, 2))
    Depth = 2 ^ (ascb(midb(strBuff, lngPos + 8, 1)) * 8)
    getSize = True

    end if

    end if

    set obj = Nothing
    end function

    URL = "http://www.sito.com/foto_prodotti/00-0630.JPG"
    width = 1
    height = 1
    depth = 0
    flType = "jpg"
    getSize URL, width, height, depth, flType
    Response.Write(width)
    Response.Write(height)

    %>
    ste

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.