Pagina 3 di 9 primaprima 1 2 3 4 5 ... ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 87

Discussione: Consigli su miniature

  1. #21
    ciao eliane,
    nel file in cui devi visualizzare le immagini (es. "immagini.html") richiama l'immagine in questo modo:
    (supponiamo che tu abbia inserito il codice di Riddick in un file che hai chiamato "img.aspx" che risiede nella stessa directory di "immagini.html")
    codice:
    [img]img.aspx?src=comesichiamalimmagine.jpg&w=640&h=480[/img]
    in questo modo vedrai l'immagine "comesichiamalimmagine.jpg" (che magari in originale è 1600X1200) perfettamente ridimensionata a 640X480
    spero di essere stato chiaro.
    Buona notte, e buona fortuna.
    Edward R. Murrow

  2. #22
    si, sulla url l'immagine vediamo piccola e diminuisci il peso per la pagina web
    ma sulla ftp l'immagine ha sempre la sua misura originale
    non é diventata piccola

    vuoi dire che non po diminuire con questo codice
    allora capito
    Grazie

  3. #23
    Ah, certo, non ci riduci fisicamente le immagini con la mia variante, ma con il codice originale di Riddick hai la possibilità di salvare in una cartella del tuo spazio web il risultato del ridimensionamento.. Torna all'inizio del thread e vedrai.
    Boa tarde.
    Buona notte, e buona fortuna.
    Edward R. Murrow

  4. #24
    non avevo fatto la cartella public
    per cio non funzionava
    ma adesso si
    Grazie

  5. #25
    ho trovato un piccolo difetto nel codice di R.B. Riddick
    se l’immagine è quadrata non
    crea ne salva la Thumbnail dell'immagine in /thumbs/
    allora per risolvere questo?

  6. #26
    Quello che si è andato via via a creare dalle modifiche del
    codice originale del mio script è una versione che non salva
    i thumbnails quindi ti posto la versione che uso io...
    Noterai che ci sono dei commenti "//" quindi se leggi tutto
    il codice ne scoprirai uno che fa al caso tuo.


    codice:
    <%@ Page Language="C#" Debug="true" %>
    
    <%@ import Namespace="System"%>
    <%@ import Namespace="System.IO"%>
    <%@ import Namespace="System.Drawing" %>
    <%@ import Namespace="System.Drawing.Imaging" %>
    <%@ import Namespace="System.Text.RegularExpressions" %>
    
    
    <script Language="C#" runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
     int ThumbnailWidth = 64;
     int ThumbnailHeight = 64;
     string strFileName = "";
     string destinazione = Server.MapPath("./public/");
     
     double orgImgWidth = 0.0;
     double orgImgHeight = 0.0;
     double rThumbnailWidth = 0.0;
     double rThumbnailHeight = 0.0;
     
     System.Drawing.Image orgImage;
     
     if (Request.QueryString["w"] != "") ThumbnailWidth = Convert.ToInt32(Request.QueryString["w"]);
     if (Request.QueryString["h"] != "") ThumbnailHeight = Convert.ToInt32(Request.QueryString["h"]);
     
     if (Request.QueryString["src"] != "")
      {
       strFileName = Convert.ToString(Request.QueryString["src"]);
       
       if (strFileName != "")
    	{
    	 try
    	  {
    	   orgImage = System.Drawing.Image.FromFile(Server.MapPath(strFileName));
    	   using(Bitmap tmpImage = new Bitmap(orgImage))
    		{
    		 rThumbnailWidth = ThumbnailWidth;
    		 rThumbnailHeight = ThumbnailHeight;
    		 orgImgWidth = tmpImage.Width;
    		 orgImgHeight = tmpImage.Height;
    		 
    		 // Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di 
    		 // quest'ultimo alle dimensioni dell'immagine.
    		 if (orgImgWidth < ThumbnailWidth) ThumbnailWidth = tmpImage.Width;
    		 if (orgImgHeight < ThumbnailHeight) ThumbnailHeight = tmpImage.Height;
    
    		 // Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla.
    		 // quindi se l'immagine è quadrata...
    		 if (tmpImage.Width != tmpImage.Height)
    		  {
    		   // Se l'immagine non è quadrata
    		   // continuiamo a fare i nostri controlli per calcolarne le 
    		   // giuste dimensioni e quindi creare la nostra nuova immagine con
    		   // l'aspectratio corretto.
    
    		   // Se l'immagine è più larga che alta
    		   if (tmpImage.Width > tmpImage.Height)
    			{
    			 // L > H => L = tL
    			 // La larghezza del TN sarà quella da noi stabilita
    			 // quindi dobbiamo solo assegnarla.
    			 rThumbnailWidth = ThumbnailWidth;
    			 // L'altezza del TN invece dovrà essere ricalcolata 
    			 // in proporzione alla larghezza dell'immagine originale.
    			 // L > H => tH = (H * tL)/ L
    			 rThumbnailHeight = (double)((tmpImage.Height * ThumbnailWidth) / tmpImage.Width);
    			} // if (tmpImage.Width > tmpImage.Height)
    		   else
    			{
    			 // Altrimenti se l'immagine è più alta
    			 if (tmpImage.Width < tmpImage.Height)
    			  {
    			   // L < H => H = tH
    			   // L'altezza del TN sarà quella da noi stabilita
    			   // quindi dobbiamo solo assegnarla.
    			   rThumbnailHeight = ThumbnailHeight;
    			   // La larghezza del TN invece dovrà essere ricalcolata 
    			   // in proporzione alla altezza dell'immagine originale.
    			   // L < H => tL = (L * tH)/ H
    			   rThumbnailWidth = (double)((tmpImage.Width * ThumbnailHeight) / tmpImage.Height);
    			  } // if (tmpImage.Width < tmpImage.Height)
    			} // else
    		  } // if (tmpImage.Width != tmpImage.Height)
    		} // using(Bitmap tmpImage = new Bitmap(orgImage))
    
    	   using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
    		{
    		 Response.ContentType = orgImage.RawFormat.ToString();
    		 Response.Clear();
    		 Response.BufferOutput = true;
    //		 strFileName = DateTime.Now.ToString("dd.MM.yyyy.hh.mm.ss") + "-" + strFileName;
    		 Response.AddHeader("Content-Disposition", "filename=" + strFileName);
    		 
    		 // In questo caso viene creata e salvata la Thumbnail dell'immagine in /thumbs/
    		 if ((orgImage.Width > ThumbnailWidth) || (orgImage.Height > ThumbnailHeight)) 
    		  { 
    		   bitmap.Save(Response.OutputStream, orgImage.RawFormat);
    		   bitmap.Save((destinazione + strFileName), orgImage.RawFormat);
    		  } // if ((orgImage.Width > ThumbnailWidth) || (orgImage.Height > ThumbnailHeight))
    		 else // L'immagine rientra già nella dimensione da noi decisa quindi non serve creargli il Thumbnail.
    		  {
    		   bitmap.Save(Response.OutputStream, orgImage.RawFormat);
    //         Se vuoi che l'immagine venga comunque salvata nella cartella dei Thumbnails leva "//" dalla riga sottostante.
    //		   bitmap.Save(destinazione + strFileName, orgImage.RawFormat);
    		  } // else
             Response.Flush();
    		} // using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
    	  } // try
         catch (Exception ex)
          {
    	   Response.Write(ex.Message);
          } // catch (Exception ex)
         finally
          {
           Response.Write("\nRe-Coded by R.B. Riddick");
          }
    	} // if (strFileName != "")
      } // if (Request.QueryString["src"] != "")
    }
    </script>
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  7. #27
    Perfetto R.B. Riddick

    adesso é una meraviglia!
    Grazie mille

  8. #28
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  9. #29
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137

    Una versione in VB?

    Per chi non mastica molto il C# e volesse capire meglio il funzionamento dello script, ecco una bella 'traduzione' in VB.
    Anche se sinceramente per me C# o VB è indifferente (io uso VB hehehe).

    Il codice va preso e incollato in una pagina chiamata "GetThumbnail.aspx".

    codice:
    <%--
    
    ------------
    Descrizione:
    ------------
        Script per la creazione delle miniature OnTheFly di immagini.
        Lo script (in C#) è stato preso dal forum di www.HTML.it , originariamente postato da R.B. Riddick,
        modificato da InstinctCoder e infine da me (Fusion) 'tradotto' in VB.NET.
    
        
    --------------------
    Esempio di Utilizzo:
    --------------------
        <html>
            <body>
                [img]GetThumbnail.aspx?src=immagine.jpg&w=150&h=150[/img]
            </body>
        </html>
    
        
    ----------
    Parametri:
    ----------
        src : percorso del file da utilizzare per creare la miniatura (thumbnail)
        w   : larghezza della miniatura
        h   : altezza della miniatura
        
    --%>
    
    
    <%@ Page Language="VB" %>
    
    <%@ import Namespace="System"%>
    <%@ import Namespace="System.IO"%>
    <%@ import Namespace="System.Drawing" %>
    <%@ import Namespace="System.Drawing.Imaging" %>
    <%@ import Namespace="System.Text.RegularExpressions" %>
    
    
    
    <script runat="server">
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim ThumbnailWidth As Integer = 64
            Dim ThumbnailHeight As Integer = 64
            Dim strFileName As String = ""
            
            Dim orgImgWidth As Double = 0.0
            Dim orgImgHeight As Double = 0.0
            Dim rThumbnailWidth As Double = 0.0
            Dim rThumbnailHeight As Double = 0.0
            
            Dim orgImage As Drawing.Image
            
            If (Request.QueryString("w") <> "") Then
                ThumbnailWidth = Convert.ToInt32(Request.QueryString("w"))
            End If
            
            If (Request.QueryString("h") <> "") Then
                ThumbnailHeight = Convert.ToInt32(Request.QueryString("h"))
            End If
            
            If (Request.QueryString("src") <> "") Then
                strFileName = Convert.ToString(Request.QueryString("src"))
            End If
            
            If (strFileName <> "") Then
                Try
                    orgImage = Drawing.Image.FromFile(Server.MapPath(strFileName))
                    Using tmpImage As Bitmap = New Bitmap(orgImage)
                        rThumbnailWidth = ThumbnailWidth
                        rThumbnailHeight = ThumbnailHeight
                        orgImgWidth = tmpImage.Width
                        orgImgHeight = tmpImage.Height
                        
                        ' Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di 
                        ' quest'ultimo alle dimensioni dell'immagine.
                        If (orgImgWidth < ThumbnailWidth) Then
                            ThumbnailWidth = tmpImage.Width
                        End If
                        
                        If (orgImgHeight < ThumbnailHeight) Then
                            ThumbnailHeight = tmpImage.Height
                        End If
                        
                        ' Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla.
                        If (tmpImage.Width <> tmpImage.Height) Then
                            ' Altrimenti continuiamo a fare i nostri controlli per calcolarne le 
                            ' giuste dimensioni e quindi creare la nostra nuova immagine con
                            ' l'aspectratio corretto.
                            If (tmpImage.Width > tmpImage.Height) Then
                                rThumbnailWidth = ThumbnailWidth
                                rThumbnailHeight = CType((tmpImage.Height * ThumbnailWidth / tmpImage.Width), Double)
                            ElseIf (tmpImage.Height > tmpImage.Width) Then
                                rThumbnailHeight = ThumbnailHeight
                                rThumbnailWidth = CType((tmpImage.Width * ThumbnailHeight / tmpImage.Height), Double)
                            End If
                        End If
                        ' Liberiamo la risorsa
                        tmpImage.Dispose()
                    End Using
                    
                    Using fBitmap As Bitmap = New Bitmap(orgImage, CType(rThumbnailWidth, Integer), CType(rThumbnailHeight, Integer))
                        Response.ContentType = orgImage.RawFormat.ToString()
                        Response.Clear()
                        Response.BufferOutput = True
                        Response.AddHeader("Content-Disposition", "filname=" & strFileName)
                        fBitmap.Save(Response.OutputStream, orgImage.RawFormat)
                        fBitmap.Dispose()
                    End Using
                    orgImage.Dispose()
                Catch ex As Exception
                    Response.Write(ex.Message)
                End Try
            End If
        End Sub
    </script>

    Complimenti a chi ha scritto o collaborato nella scrittura di questo script. Mi è servito a capire un paio di cose visto che sono ancora un bambino che muove i primi passi nel mondo di ASP.NET.


    Fusion

  10. #30
    Utente di HTML.it
    Registrato dal
    Dec 1999
    Messaggi
    336

    posso avere helps?

    Ciao a tutti.
    Sto provando ad utilizzare il codice di R.B. Riddick per le thumbnail
    Ho visto che bisogna già assegnare le dimensioni dell'immagine quando si richiama il codice

    [img]thumb.aspx?src=public/prodotti/<%= IMMAGINE %>&w=120&h=150[/img]
    e fin qui tutto bene (il cod. va alla gande)

    Siccome le immagini che verranno caricate non saranno sempre della medesima misura, ho provato a togliere "h=150" pensando:
    "Forse succede come nell'html, se indico solo la larghezza poi l'immagine si visualizza correttamente ridimensionata"

    Invece, alcune immagini le visualizza bene, mentre altre immagini, seppur presenti nella medesima cartella public/prodotti, non le fa vedere. Dove erro?

    Ciao!

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.