Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    413

    [Foto Gallery] cosa consigliate di fare?

    ciao

    ho 1 cliente che ha un'esposizione di mobili, quadri ecc ecc. Vuole mettere su internet le foto di tutta la sua merce circa 300 fotografie.
    Ci saraà una pagina che mostra tutti i mobili una che mostra tutti i qudri e cosi via.
    Se un utente clicca su un'immagine (piccola) presente nella pagina, questa deve essere ingrandita in una pop-up.
    Ho preparato un area di amministrazione dove lui puo inseirere le sue foto.
    Ecco il mio dubbio:

    gli faccio caricare 1 sola volta le immagini a dimensione fissa (cioè in massima risoluzione) e poi nella pagina metto <img src=foto width=50% height=50%> e quando ci clicca mostro le reali dimensioni

    oppure gli faccio caricare 2 volte la stessa immagine; una volta carica l'immagine piccola e la seconda volta quella grossa?

    voi cosa fareste?

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    si meglio che carichi una miniatura ed una foto grande.

    meglio ancora se gli fai caricare una foto sola e tu crei la miniatura
    ma per fare questo o usi un COM o asp.net (su html.it trovi gia' funzioni per la creazione delle thumbnail)

  3. #3
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Io carico le foto una sola volta, indicando due variabili che indicano altezza massima e larghezza massima di visualizzazione, poi ho una classe che gestisce la visualizzazione. Adesso te la mando in un post.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    FIle1: clsImageSize.asp (da includere nelle pagine dove ci sono le foto)

    codice:
    <%
    '******************************************************************
    ' Classe ImageSize
    '   Data una immagine restituisce le dimensioni X,Y e numero di
    '   colori
    '
    '   Proprietà:
    '     ImageFile = path fisico completo dell'immagine
    '     ImageName = restituisce il nome del file
    '     ImageType = restituisce il tipo di immagine
    '     ImageWidth = restituisce la larghezza in pixel dell'immagine
    '     ImageHeight = restituisce l'altezza in pixel dell'immagine
    '     ImageDepth = restituisce il numero di colori dell'immagine
    '     IsImage = restituisce TRUE se il file è una immagine
    '
    ' Author:
    ' 2002 Luciani Massimiliano
    ' http://www.byluciani.com
    ' webmaster@byluciani.com
    '
    ' Original code:
    ' http://www.4guysfromrolla.com/webtech/011201-1.shtml
    ' Author: Mike Shaffer - mshaffer@nkn.net
    '
    ' This script is FREEWARE
    '******************************************************************
    
    Class ImageSize
    
      Public Dimensioni0, Dimensioni1, Dimensioni2
      Public bolIsImage, strPathFile, strImageType
      
      Private Sub Class_Initialize()
    
      End Sub
      
      Private Sub Class_Terminate()
    
      End Sub
    
      Public Property Get ImageName
      	ImageName = doName(ImageFile)
      End Property
      
      Public Property Get ImageFile
      	ImageFile = strPathFile
      End Property
      
      Public Property Let ImageFile(strImageFile)
      	strPathFile = strImageFile
      	gfxSpex strPathFile
      End Property
      
      Public Property Get ImageWidth
      	ImageWidth = Dimensioni1
      End Property
      
      Public Property Get ImageHeight
      	ImageHeight = Dimensioni0
      End Property
      
      Public Property Get ImageDepth
      	ImageDepth = Dimensioni2
      End Property 
      
      Public Property Get ImageType
      	ImageType = strImageType
      End Property      
      
      Public Property Get IsImage
      	IsImage = bolIsImage
      End Property     
    
      Public Function GetBytes(flnm, offset, bytes)
        Dim objFSO
        Dim objFTemp
        Dim objTextStream
        Dim lngSize
        
        on error resume next
        
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        
        ' First, we get the filesize
        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		' Get All!
        
          GetBytes = objTextStream.Read(lngSize)  'ReadAll
        
        else
        
          GetBytes = objTextStream.Read(bytes)
        
        end if
        
        objTextStream.Close
        set objTextStream = nothing
        set objFSO = nothing
      end function
    
      Public function lngConvert(strTemp)
        lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) * 256)))
      end function
    
      Public function lngConvert2(strTemp)
        lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) * 256)))
      end function
      
      Public Sub gfxSpex(flnm)
    
         dim strPNG 
         dim strGIF
         dim strBMP
         dim strType
    	 dim Dimens(2)
    
         strType = ""
         strImageType = "(unknown)"
    
         bolIsImage = False
    
         strPNG = chr(137) & chr(80) & chr(78)
         strGIF = "GIF"
         strBMP = chr(66) & chr(77)
    
         strType = GetBytes(flnm, 0, 3)
    
         if strType = strGIF then				' is GIF
    
            strImageType = "GIF"
            lngWidth = lngConvert(GetBytes(flnm, 7, 2))
            lngHeight = lngConvert(GetBytes(flnm, 9, 2))
            lngDepth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1)
            bolIsImage = True
    
         elseif left(strType, 2) = strBMP then		' is BMP
    
            strImageType = "BMP"
            lngWidth = lngConvert(GetBytes(flnm, 19, 2))
            lngHeight = lngConvert(GetBytes(flnm, 23, 2))
            lngDepth = 2 ^ (asc(GetBytes(flnm, 29, 1)))
            bolIsImage = True
    
         elseif strType = strPNG then			' Is PNG
    
            strImageType = "PNG"
            lngWidth = lngConvert2(GetBytes(flnm, 19, 2))
            lngHeight = lngConvert2(GetBytes(flnm, 23, 2))
            lngDepth = getBytes(flnm, 25, 2)
    
            select case asc(right(lngDepth,1))
               case 0
                  lngDepth = 2 ^ (asc(left(lngDepth, 1)))
                  bolIsImage = True
               case 2
                  lngDepth = 2 ^ (asc(left(lngDepth, 1)) * 3)
                  bolIsImage = True
               case 3
                  lngDepth = 2 ^ (asc(left(lngDepth, 1)))  '8
                  bolIsImage = True
               case 4
                  lngDepth = 2 ^ (asc(left(lngDepth, 1)) * 2)
                  bolIsImage = True
               case 6
                  lngDepth = 2 ^ (asc(left(lngDepth, 1)) * 4)
                  bolIsImage = True
               case else
                  lngDepth = -1
            end select
     
         else
     
            strBuff = GetBytes(flnm, 0, -1)		' Get all bytes from file
            lngSize = len(strBuff)
            flgFound = 0
    
            strTarget = chr(255) & chr(216) & chr(255)
            flgFound = instr(strBuff, strTarget)
    
            if flgFound = 0 then
               exit sub
            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
     
              lngWidth = -1
              lngHeight = -1
              lngDepth = -1
     
           else
     
              lngHeight = lngConvert2(mid(strBuff, lngPos + 4, 2))
              lngWidth = lngConvert2(mid(strBuff, lngPos + 6, 2))
              lngDepth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8)
              bolIsImage = True
     
           end if
                       
         end if
    
         Dimens(0) = lngHeight
         Dimens(1) = lngWidth
         Dimens(2) = lngDepth
    
    	 Dimensioni0=Dimens(0)
    	 Dimensioni1=Dimens(1)
    	 Dimensioni2=Dimens(2)
      end Sub  
    
      Public Function doName(strPath)
        Dim arrSplit
        arrSplit = Split(strPath, "\")
        doName = arrSplit(UBound(arrSplit))
      End Function
      
    End Class
    %>
    E' un freeware che ho trovato su internet e funziona a meraviglia
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    413
    wow sei genitilissimo

    Ho un dubbio ... ma la funzione rimpicciolisce il PESO IN BYTE dell'immagine piccola oppure ne fa lo zoom al fine di rimpicciolirla?

  6. #6
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    File2: utilizzo della classe

    codice:
    
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function aprifoto(larg, alte, foto)
    {
    	opz="width="+larg+", height="+alte+", left=50";
    	window.open(foto, "", opz);
    }
    //-->
    </SCRIPT>
    <%
    altezzamax=100
    larghezzamax=150
    maxHeight=altezzamax
    maxWidth=larghezzamax
    Set objImageSize = New ImageSize
    altezzafoto=0
    larghezzafoto=0
    With objImageSize
    	.ImageFile = Server.MapPath("path/della/foto")
    	If .IsImage Then
    		altezzafinestra=.ImageHeight+20
    		larghezzafinestra=.ImageWidth+50
    		if .ImageHeight>maxHeight then
    			altezzafoto=maxHeight
    			perc=maxHeight*100/.ImageHeight
    			larghezzafoto=.ImageWidth*perc/100
    			apritaga="<a href=""javascript:aprifoto(" & larghezzafinestra & ", " & altezzafinestra & ", 'path/della/foto')"">"
    			chiuditaga="</a>"
    			altfoto="Vedi a dimensione reale"
    		else
    			if .ImageWidth>maxWidth then
    				larghezzafoto=maxWidth
    				perc=maxWidth*100/.ImageWidth
    				altezzafoto=.ImageHeight*perc/100
    				apritaga="<a href=""javascript:aprifoto(" & larghezzafinestra & ", " & altezzafinestra & ", 'path/della/foto')"">"
    				chiuditaga="</a>"
    				altfoto="Vedi a dimensione reale"
    			else
    				altezzafoto=.ImageHeight
    				larghezzafoto=.ImageWidth
    				apritaga=""
    				chiuditaga=""
    				altfoto=""
    			end if
    		end if
    	End If 
    End With
    Set objImageSize = Nothing
    %>
    <%=apritaga%>[img]path/della/foto[/img]" WIDTH="<%=larghezzafoto%>" HEIGHT="<%=altezzafoto%>"><%=chiuditaga%>
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  7. #7
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    kalosjo permettimi di sottolineare un punto: la classe sicuramente funziona perfettamente e gestisce correttamente la visualizzazione pero' la classe non ridimensiona minimamente la foto, ma ne ricalcola (perfettamente) il corretto ridimensionamento e quindi la dimensione (in byte) rimane sempre la stessa
    Mettiamo il caso che le foto originali grandi hanno una media di 20/30kb e nella lista hai una media di 10-20 record a pagina si parla gia' di 200/400 kb di peso totale della pagina.

  8. #8
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da ivano_76
    wow sei genitilissimo

    Ho un dubbio ... ma la funzione rimpicciolisce il PESO IN BYTE dell'immagine piccola oppure ne fa lo zoom al fine di rimpicciolirla?
    purtroppo fa solo lo zoom, per rimpicciolire fisicamente, c'è bisogno di un COM o asp.net, come diceva Kluster...
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  9. #9
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da kluster
    kalosjo permettimi di sottolineare un punto: la classe sicuramente funziona perfettamente e gestisce correttamente la visualizzazione pero' la classe non ridimensiona minimamente la foto, ma ne ricalcola (perfettamente) il corretto ridimensionamento e quindi la dimensione (in byte) rimane sempre la stessa
    Mettiamo il caso che le foto originali grandi hanno una media di 20/30kb e nella lista hai una media di 10-20 record a pagina si parla gia' di 200/400 kb di peso totale della pagina.
    Esatto, centrato il problema.
    Ma in ASP puro, senza oggetti esterni (che non in tutti i provider si possono montare) è il massimo che si può fare....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  10. #10
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    413
    quindi ipotizzando di avere un provider che nn ci faccia montare niente di esterno, classe o non classe, siamo sempre nello stesso dubbio:

    1. uppare le foto grosse e visualizzarle piccole

    oppure


    2. fare 2 upload (fra l'altro con 300 foto diventa una menata assurda) e assicurare cosi una maggior velocità?

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.