Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Calcolare dimensioni/risoluzione di un' immagine

    Ciao,

    Come posso fare a ricavare l'altezza e la larghezza di un'immagine tramite script? (niente oggetti di terze parti)

    Ho trovato qualche script ma funzionano bene solo su gif, bmp e png; mentre le jpg vengono calcolate male (mentre io dovrò controllare principalmente immagini Jpeg, appunto).

    Mi sapete indicare un buono script?

    Vi ringrazio

  2. #2
    scarica questa classe in asp


    Qui trovi anche un esempio di come utilizzarla

    ciao

  3. #3
    L'ho già trovata.

    Guardando il codice della classe (clsImageSize.asp) si vede che fa la Select Case solo per immagini "GIF","BMP" e "PNG".

    Dove sono le Jpeg?

  4. #4
    Mi sembra strano
    In quella che ho io ci sono anche le JPG.
    Prova a vedere a riga 194 se hai l'istruzione strImageType = "JPG" altrimenti ti copio il codice di quella che ho io.


  5. #5
    Prova questo
    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") 
      'questa variabile è quella che porta il nome del file da analizzare nella funzione 
     nomefile="Tua_immagine.jpg" 
     Set objF = objFSO.GetFile(Server.MapPath("images/"&nomefile)) 
    
    
        if instr(ucase(objF.Name), ".JPG") then 
           'stampo i valori: tipofile,nome,datacreazione,dimensione,larghezza,altezza,colori 
        	response.write "<Table border=1><tr><td>" & objF.Type &"</td><td>" & objF.name & "</td><td>" & objF.DateCreated & "</td><td>" & Int(objF.Size/1024)&" kb</td></TR></table>"
    	end if
        if gfxSpex(objF.Path, w, h, c, strType) = true then
    		response.write w & " x " & h & " " & c & " colori" 
        end if 
    
    
      set objF = nothing 
      set objFSO = nothing 
    %>
    Per le jpg va bene

  6. #6
    Originariamente inviato da michele.santoro
    Prova questo
    ...
    Per le jpg va bene

    è simile a quella che ho postato io solo che questa controlla solo le JPG e non è una classe.
    I nomi delle funzioni sono gli stessi e anche il codice, molto probabilmente è il codice di partenza dal quale è stata ricavata la classe.


  7. #7
    Allora il codice di santoro non funziona.
    La funzione "gfxSpex" ritorna False anzichè True.

    Mentre la classe di Occhio, come avevo già provato, dice che il file passato non è un'immagine.

    L'immagine che sto testando è questa qua.

    E' una normale jpg molto grande.

    A voi funziona con questa immagine? A me la classe ritorna falso sulla funzione "IsImage".

    E' un problema mio?

  8. #8
    Ho provato anche a salvare con photoshop l'immagine come JPEG. Solito problema.

    Inoltre anche salvandola come GIF mi dice che non è un'immagine.

    Mi potreste dare un'immagine che a voi funziona, per testare se è un problema mio o no?

    Grazie

  9. #9
    Originariamente inviato da pictor
    Allora il codice di santoro non funziona.
    La funzione "gfxSpex" ritorna False anzichè True.

    Mentre la classe di Occhio, come avevo già provato, dice che il file passato non è un'immagine.

    L'immagine che sto testando è questa qua.

    E' una normale jpg molto grande.

    A voi funziona con questa immagine? A me la classe ritorna falso sulla funzione "IsImage".

    E' un problema mio?
    A me funziona perfettamente e mi riporta questo:
    Immagine JPEG ballon1280x1024zp3.jpg 11/04/2007 12.14.09 103 kb
    1280 x 1024 16777216 colori
    Non capisco perché a te non funzioni.

  10. #10
    Originariamente inviato da michele.santoro
    A me funziona perfettamente e mi riporta questo:
    Immagine JPEG ballon1280x1024zp3.jpg 11/04/2007 12.14.09 103 kb
    1280 x 1024 16777216 colori
    Non capisco perché a te non funzioni.
    Ma porca pupazza sono sempre l'unico che ha problemi!!

    Comunque ho usato un vecchio script che usa l' XMLHTTP.
    Ha un bug con immagini troppo piccole (per esempio 1x1 pixel) ma funziona egregiamente con tutto il resto.

    Per adesso uso quella.

    Però non capisco come mai lo script non funzioni.
    In pratica non riconosce nessun tipo di immagine.
    Sembra che la funzione "IsImage" restituisca sempre falso.

    Avete idea della possibile causa?

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.