Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008

    implementare file per il ridimensionamento

    Ciao, il file che ho trovato è questo

    Codice PHP:
    <%@ 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 senderEventArgs 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

    if (
    Request.QueryString.Count != 0
      { 
       if (
    Request.QueryString["w"] != nullThumbnailWidth Convert.ToInt32(Request.QueryString["w"]); 
       if (
    Request.QueryString["h"] != nullThumbnailHeight Convert.ToInt32(Request.QueryString["h"]); 

       if (
    Request.QueryString["src"] != null
        { 
         
    strFileName Convert.ToString(Request.QueryString["src"]); 

         if (
    strFileName != ""
          { 
           try 
            { 
             
    using(System.Drawing.Image tmpImage System.Drawing.Image.FromFile(Server.MapPath(strFileName))) 
              { 
               
    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 ThumbnailWidthThumbnailWidth tmpImage.Width
               if (
    orgImgHeight ThumbnailHeightThumbnailHeight 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 bitmap = new Bitmap(tmpImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) 
                { 
                 
    Response.ContentType tmpImage.RawFormat.ToString(); 
                 
    Response.Clear(); 
                 
    Response.BufferOutput true
                 
    Response.AddHeader("Content-Disposition""filename=" strFileName); 
                 
                 
    // In questo caso viene creata e salvata la Thumbnail dell'immagine in /thumbs/ 
                 
    if ((tmpImage.Width ThumbnailWidth) || (tmpImage.Height ThumbnailHeight)) 
                  { 
                   
    bitmap.Save(Response.OutputStreamtmpImage.RawFormat); 
                   
    bitmap.Save((destinazione strFileName), tmpImage.RawFormat); 
                  } 
    // if ((tmpImage.Width > ThumbnailWidth) || (tmpImage.Height > ThumbnailHeight)) 
                 
    else // L'immagine rientra già nella dimensione da noi decisa quindi non serve creargli il Thumbnail. 
                  

                   
    bitmap.Save(Response.OutputStreamtmpImage.RawFormat); 
    //               Se vuoi che l'immagine venga comunque salvata nella cartella dei Thumbnails leva "//" dalla riga sottostante. 
                   
    bitmap.Save(destinazione strFileNametmpImage.RawFormat); 
                  } 
    // else 
                 
    Response.Flush(); 
                } 
    // using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) 
              
    // using(System.Drawing.Image tmpImage = System.Drawing.Image.FromFile(Server.MapPath(strFileName))) 
            
    // try 
           
    catch (Exception ex
            { 
             
    Response.Write(ex.Message); 
            } 
    // catch (Exception ex) 
           
    finally 
            { 
             
    Response.Write("\nCoded by R.B. Riddick"); 
            } 
          } 
    // if (strFileName != "") 
        
    // if (Request.QueryString["src"] != "") 
      
    // if (Request.QueryString.Count != 0) 
    // void Page_Load(Object sender, EventArgs e) 
    </script> 
    e funziona bene pero io nella mia pagina facio in modo di cancellare le immagini quindi quando ricarico la pagina e brutta perche mi rimangono i buchi. Vorrei far si che quando manca l' immagine il file aspx me ne mettesse una standard tipo immagine_assente.jpg
    Come facio?
    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: è un po' difficile seguirti Io farei così:

    metterei tutto dentro un gestore di eccezioni. Se si verifica una eccezione, tento di restituire una immagine con la descrizione dell'errore, oppure, se non possibile, una immagine predefinita.

    Solo a titolo di esempio, vedi se ti può servire:
    codice:
    <script runat="server">
        'PROCEDURA PRINCIPALE
        Sub Page_Load()
            Try
                '---------------inizio recupero parametri-----------------------
                'recupero il percorso logico della immagine
                Dim p_img As String = Request.QueryString("p_img")
    
                'recupero la dimensione max dell'immagine (stringa)
                'e la trasformo in intero
                Dim p_max As String = Request.QueryString("p_max")
                Dim max As Integer = CInt(p_max)
                '---------------fine recupero parametri-----------------------
    
    
                
                
                
                
                '---------------inizio lavoro con immagini-----------------------
                'leggo l'immagine convertendo il percorso logico in percorso fisico
                Dim bmp As Bitmap = ImgLoad(Server.MapPath(p_img))
    
                'ridimensiono l'immagine
                ImgResize(bmp, max, InterpolationMode.HighQualityBicubic, False)
    
                'salvo l'immagine nello stream richiesto
                ImgSaveToResponseOutputStream(bmp, FormatoOutput.png, -1)
                '---------------fine lavoro con immagini-----------------------
    
    
    
    
                'gestione errori
            Catch ex As Exception
                Try
                    'se posso restituisco una immagine con la descrizione dell'errore
                    Dim bmp As Bitmap = ImgFromText(ex.Message, Color.White, Brushes.Black, New Font("Arial", 12, FontStyle.Regular, GraphicsUnit.Point))
                    ImgSaveToResponseOutputStream(bmp, FormatoOutput.bmp, -1)
    
                Catch
                    'altrimenti restituisco una immagine di errore predefinita
                    'letta dal disco
                    Me.Response.WriteFile(Server.MapPath("errore.bmp"))
                    Me.Response.End()
                End Try
    
            End Try
            
        End Sub
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    Chiedo scusa se replico dopo un po di giorni ma cerco di far capire cosa mi succede. Sto utilizzando lo script che ho postato per fare apparire le miniature dei file che carico con un' altro script in ASP pero quando carico la foto se non mi piace ho messo il linck per eliminarla
    e quando la elimino pero mi rimane con uno spazio che non mi piace. Per provare quello che dico si parte da questa pagina
    inserendo nome marco e pass aaaaaa si accede direttamente all' area per gestire il profilo
    dell' utente. Da qui bisogna cliccare su +immagini e successivamente su foto personali, ne carichi una e poi la elimini, il file deve essere jpg, e vedi quello che dicevo. A me basterebbe che il file ASPX valutasse il fatto che se manca l' immagine ne mette una di default immagine_mancante.jpg per esempio. Se il codice che mi hai postato fa al mio caso non so come integrarlo col codice che ho quindi anche qui un suggerimento è gradito. Ciao e grazie

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Premetto che il codice è di Riddick, per cui spero che mi perdoni se provo a suggerire qualcosa a grandeorco.

    1) Il problema, secondo me, non è nella procedura per ridimensionare le immagini, ma nel tuo codice. Infatti, spetta al tuo codice chiamante, valutare se l'immagine è presente nel disco e comportarsi di conseguenza.


    2) con tutte le cautele del caso, perchè il codice di Riddick non l'ho studiato, come ti ho suggerito, prova a mettere:

    codice:
    *******
                 else // L'immagine rientra già nella dimensione da noi decisa quindi non serve creargli il Thumbnail. 
                  { 
                   bitmap.Save(Response.OutputStream, tmpImage.RawFormat); 
    //               Se vuoi che l'immagine venga comunque salvata nella cartella dei Thumbnails leva "//" dalla riga sottostante. 
                   bitmap.Save(destinazione + strFileName, tmpImage.RawFormat); 
                  } // else 
                 Response.Flush(); 
                } // using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) 
              } // using(System.Drawing.Image tmpImage = System.Drawing.Image.FromFile(Server.MapPath(strFileName))) 
            } // try 
           catch (Exception ex) 
            { 
             
    //Response.Write(ex.Message); 
            Response.WriteFile(Server.MapPath("errore.bmp"));
            Response.End();
               
               
            } 
           finally 
            { 
             Response.Write("\nCoded by R.B. Riddick"); 
            } 
    
    
    
    *******
    ho provato a richiamarlo con un codice sbagliato:

    [img]c.aspx?src=x&w=300&h=300[/img]

    e mi restituisce l'immagine standard errore.bmp
    Pietro

  5. #5
    Ok! perchè complicarsi la vita???

    Basta fare così :
    Codice PHP:
    <%@ 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 senderEventArgs e)
    {
     
    int ThumbnailWidth 64;
     
    int ThumbnailHeight 64;
     
    string strFileName "";
     
    string destinazione Server.MapPath("./public/");
     
    string notfound "/public/notfound.gif";
     
     
    double orgImgWidth 0.0;
     
    double orgImgHeight 0.0;
     
    double rThumbnailWidth 0.0;
     
    double rThumbnailHeight 0.0;
     
     if (
    Request.QueryString.Count != 0)
      {
       if (
    Request.QueryString["w"] != nullThumbnailWidth Convert.ToInt32(Request.QueryString["w"]);
       if (
    Request.QueryString["h"] != nullThumbnailHeight Convert.ToInt32(Request.QueryString["h"]);

       if (
    Request.QueryString["src"] != null)
        {
         
    strFileName Convert.ToString(Request.QueryString["src"]);
         
    Response.Write(destinazione strFileName+"
    "
    );
         if (!
    File.Exists(destinazione+strFileName) || (strFileName == "")) strFileName notfound;

         if (
    strFileName != "")
          {
           try
            {
             
    using(System.Drawing.Image tmpImage System.Drawing.Image.FromFile(Server.MapPath(strFileName)))
              {
               
    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 ThumbnailWidthThumbnailWidth tmpImage.Width;
               if (
    orgImgHeight ThumbnailHeightThumbnailHeight 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 bitmap = new Bitmap(tmpImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
                {
                 
    Response.ContentType tmpImage.RawFormat.ToString();
                 
    Response.Clear();
                 
    Response.BufferOutput true;
                 
    Response.AddHeader("Content-Disposition""filename=" strFileName);
                 
                 
    // In questo caso viene creata e salvata la Thumbnail dell'immagine in /thumbs/
                 
    if ((tmpImage.Width ThumbnailWidth) || (tmpImage.Height ThumbnailHeight)) 
                  { 
                   
    bitmap.Save(Response.OutputStreamtmpImage.RawFormat);
                   
    bitmap.Save((destinazione strFileName), tmpImage.RawFormat);
                  } 
    // if ((tmpImage.Width > ThumbnailWidth) || (tmpImage.Height > ThumbnailHeight))
                 
    else // L'immagine rientra già nella dimensione da noi decisa quindi non serve creargli il Thumbnail.
                  
    {
                   
    bitmap.Save(Response.OutputStreamtmpImage.RawFormat);
    //               Se vuoi che l'immagine venga comunque salvata nella cartella dei Thumbnails leva "//" dalla riga sottostante.
                   
    bitmap.Save(destinazione strFileNametmpImage.RawFormat);
                  } 
    // else
                 
    Response.Flush();
                } 
    // using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
              
    // using(System.Drawing.Image tmpImage = System.Drawing.Image.FromFile(Server.MapPath(strFileName)))
            
    // 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"] != "")
      
    // if (Request.QueryString.Count != 0)
    // void Page_Load(Object sender, EventArgs e)
    </script> 
    Spero sia chiara almeno la modifica...
    Richard B. Riddick : "Non avrete mica paura del buio?"

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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    Grazie per gli aiuti ma purtroppo sono un asinello e non son riuscito a fare nulla, evidentemente e meglio cambiare strada

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da grandeorco
    Grazie per gli aiuti ma purtroppo sono un asinello e non son riuscito a fare nulla, evidentemente e meglio cambiare strada
    La cavalcatura dei Re, se qualcuno non lo sapesse

    se prima ti funzionava ti funzionerà pure adesso: in più con quello che chiedi:

    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/"); 
    string notfound = "/public/notfound.gif";
    vedi l'ultima riga: quella è l'immagine predefinita che chiedi venga mostrata in vece di quella cancellata (se ho interpretato bene il codice :master: )
    Pietro

  8. #8
    Originariamente inviato da pietro09
    La cavalcatura dei Re, se qualcuno non lo sapesse

    se prima ti funzionava ti funzionerà pure adesso: in più con quello che chiedi:

    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/"); 
    string notfound = "/public/notfound.gif";
    vedi l'ultima riga: quella è l'immagine predefinita che chiedi venga mostrata in vece di quella cancellata (se ho interpretato bene il codice :master: )
    Esatto c'hai visto bene

    Basta inserire qui "string notfound = "/public/notfound.gif";" il percorso relativo
    all'immagine da visualizzare in caso quella che gli passi come parametro non
    venisse trovata.

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

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

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Mi viene un dubbio :master: amletico: se butto una pagina aspx come questa, c# o basic che sia, in un progetto asp, la pagina aspx viene compilata SOLO la prima volta che viene utilizzata, vero? :master:
    Pietro

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    il file di Riddick , quello che ho postato in origine funziona benessimo ed io ora ho risolto inserendo nella pagina asp un ciclo per controllare , prima di generare una miniatura col file aspx , che il file originale (cioe quello che ho uploadato) esiste o no .

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 © 2026 vBulletin Solutions, Inc. All rights reserved.