Pagina 1 di 14 1 2 3 11 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 133
  1. #1
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    ridimensionare immagine da upload e salvarla

    Ciao a tutti, io vorrei effetuare la seguente cosa:
    ho un upload (in asp) dove gli utenti inseriscono le immagini, ora io prima di salvare il file sul disco vorrei ridimensionare l'immagine, sò che in asp.net si può fare ma come?
    VVoVe:
    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    fai una ricerca nel sito l'argomento è stato trattato in tutte le sue forme.

  3. #3
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    ho cercato

    Originariamente inviato da cassano
    fai una ricerca nel sito l'argomento è stato trattato in tutte le sue forme.
    e ho trovato qualcosa ma non mi è chiaro ecco cosa ho trovato:

    <%@ Import Namespace="System.Drawing"%>
    <%@ Import Namespace="System.Drawing.Imaging"%>
    <SCRIPT RUNAT="SERVER">
    Sub Page_Load()

    Dim width as Integer = 0
    Dim height as Integer = 0

    try
    ' ricava dimensioni dalla richiesta
    if not Request.QueryString("width") is Nothing Then
    width = Int32.Parse(Request.QueryString("width"))
    End if
    if not Request.QueryString("height") is Nothing Then
    height = Int32.Parse(Request.QueryString("height"))
    End if

    catch ex as Exception
    End Try

    ' ridimensiona l'immagine se specificato
    Dim immagine as String = Server.MapPath(Request("img"))
    if Not System.Io.File.Exists(immagine) then
    immagine = Server.MapPath("/immagini/nondisponibile.jpg")
    end if

    call ImgRedim(immagine, width, height)

    ' fermo il resto della risposta
    Response.End()
    End Sub

    ' Funzione di redim
    Public Sub ImgRedim(immagine as String, width as Integer, height as Integer)
    Dim bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(immagine), System.Drawing.Bitmap)

    ' c'è da ridimensionare?
    if width>0 or height>0 then
    ' se è specificata solo la larghezza, calcola l'altezza
    if bmp.Width > bmp.Height then
    height = Convert.ToInt32(width / bmp.Width * bmp.Height)
    End if

    ' (e viceversa)
    if bmp.Width < bmp.Height then
    width = Convert.ToInt32(height / bmp.Height * bmp.Width)
    End if

    ' creo la Thumbnail con i parametri impostati
    Dim miniaturabmp as New System.Drawing.Bitmap(bmp, width, height)

    ' salvo sullo stream di output
    if immagine.EndsWith(".jpg") Then
    miniaturabmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    else
    miniaturabmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
    end if

    ' pulizia
    miniaturabmp.Dispose()
    else
    ' salvo sullo stream di output
    if immagine.EndsWith(".jpg") Then
    bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    else
    bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
    end if
    end if

    ' pulizia finale
    bmp.Dispose()

    End Sub

    Dove recupero il nome dell'immagine? Dove gli dico quanto può essere massimo di larghezza? E Dove la salvo su disco (il percorso di dove salvarla dove lo metto)?
    Non mi sono chiare queste cose. Potete spiegarmelo please?

  4. #4
    Dai un'occhiata Qui

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

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

  5. #5
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    visto ma non fa nulla

    Originariamente inviato da R.B. Riddick
    Dai un'occhiata Qui

    ho visto e provato lo script ma on mi salva l'immagine, quindi non so se me la ridimensiona!
    Se vuoi ti posto il codice, a me non va! poi C#.net non lo conosco quindi non sò cosa non possa andare

  6. #6
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    Re: visto ma non fa nulla

    Originariamente inviato da mexican
    ho visto e provato lo script ma on mi salva l'immagine, quindi non so se me la ridimensiona!
    Se vuoi ti posto il codice, a me non va! poi C#.net non lo conosco quindi non sò cosa non possa andare
    nessuno mi sa aiutare??? E poi In Vb.Net non c'è nulla?Ho trovato uno simile a quello C# ma non funziona

  7. #7
    Vedrò se riesco ad aiutarti ma devi essere più preciso
    ed io purtroppo non scrivo applicazioni in VB.Net
    proprio mi rifiuto sono abituato vecchia
    scuola con C/C++ quindi mi trovo di gran lunga
    meglio con il C#.

    Seconda cosa lo script che in precedenza ti ho linkato
    ha una enorme ed asaustiva spiegazione da parte
    mia e di altri utenti che lo stanno adoperando
    quindi se ti sforzavi di leggere le domande e le
    risposte fin dal primo post di Spirit6, ti accorgevi
    che l'applicazione ha bisogno di almeno una
    cartella (public nel nostro script di esempio)
    codice:
    void Page_Load(Object sender, EventArgs e)
    {
    int ThumbnailWidth = 64;
    int ThumbnailHeight = 64;
    string strFileName = "";
    string destinazione = Server.MapPath("./public/");
    che goda dei permessi di lettura e scrittura quindi
    bastava sostituirla con la propria cartella di destinazione.

    Poi allo script vanno passati dei parametri che specificano
    dove si trova il file da cui leggere i dati e le nuove "ipotetiche"
    dimensioni della nuova immagine.

    Sì ipotetiche perchè le dimensioni finali terranno conto delle
    proporzioni dell'immagine originale, quindi se l'immagine e
    più alta che larga l'immagine finale prenderà per buono la
    dimensione dell'altezza da te specificata e ricalcolerà
    la dimensione in porporzione della larghezza.
    Comunque sto cercando di scriverti qualcosa di più intuitivo,
    per la serie che ti faccia l'upload salvando già l'immagine
    alla dimensione da te predefinità.

    Ovviamente in C#

    Stay Tuned!

    PS: se hai richieste particolari contattami in privato ok?

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

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

  8. #8
    Come promesso eccoti qui il codice :

    Codice PHP:
    <%@ Page Language="C#" LCID=1040 Debug="true" Trace="false" %>
    <%@ 
    Import Namespace="System" %> 
    <%@ 
    Import Namespace="System.IO" %>
    <%@ 
    Import Namespace="System.Data" %>
    <%@ 
    Import Namespace="System.Drawing" %>
    <%@ 
    Import Namespace="System.Drawing.Imaging" %>
    <%@ 
    Import Namespace="System.Drawing.Drawing2D" %>
    <%@ 
    Import Namespace="System.Globalization" %>
    <%@ 
    Import Namespace="System.Web.UI.HtmlControls" %>

    <
    script Language="C#" runat="server">

    void Page_Load(object senderSystem.EventArgs e)
     {
      
    titletext2.Text titletext.Text "&quot;Upload &amp; Resample On-Fly, delle immagini inviate, su di una cartella del Server&quot; [v.1.0.0]";
      
    Status.Text += "
    <center><pre>Coded by <a href=\"http://forum.html.it/forum/member.php?s=&action=getinfo&userid=83362\" title=\"R.B.Riddick\" target=\"blank\">R.B.Riddick &copy;</a>
     on 
    <a href=\"http://www.html.it/\" title=\"www.html.it\" target=\"blank\">[url]www.html.it[/url]</a></pre></center>"
    ;
      
    Status.Text += "

    <a href=\"http://validator.w3.org/check?uri=referer\" target=\"blank\"><img src=\"http://www.w3.org/Icons/valid-html401\" alt=\"Valid HTML 4.01 Transitional\" height=\"31\" width=\"88\" border=\"0\"></a></p>"
    ;
     } 
    // void Page_Load(object sender, System.EventArgs e)

    bool IsImage(string fileName)
     {
      
    string ext Path.GetExtension(fileName).ToLower();
      
    bool imageFlag false;

      if (
    ext != null)
       {
        switch (
    ext)
         {
          case 
    ".emf" // Enhanced Windows metafile image format
          
    case ".exif" // Exchangable Image Format
          
    case ".ico" // Windows icon image format (extension .ico)
          
    case ".wmf" // Windows metafile image format (extension .wmf)
          
    case ".png" // Specifies the W3C Portable Network Graphics image format (extension .png)
          
    case ".gif" // Graphics Interchange Format image format (extension .gif)
          
    case ".bmp" //Bitmap image format (extension .bmp)
          
    case ".tiff" // Tag Image File Format (extension .tif)
          
    case ".tif" // Tag Image File Format (extension .tif)
          
    case ".jpeg" // Joint Photographic Experts Group image format (extensions .jpg, .jpeg)
          
    case ".jpg" imageFlag true; break; // Joint Photographic Experts Group image format (extensions .jpg, .jpeg)

          
    default: imageFlag false; break;  // Not a supported file type.
         
    // switch (ext)
       
    // if (ext != null)
      
    else
       
    imageFlag false;

      return 
    imageFlag;
     } 
    // bool IsImage(string fileName)


     
    void UploadAndResizeAnImage(HttpPostedFile filedouble newWidthdouble newHeightstring virPathbool overwrite)
      {
       
    string destPath ".";
       
    double ThumbnailWidth 64.0;
       
    double ThumbnailHeight 64.0;
       
    bool owr false;

       if (
    virPath != ""destPath virPath;
       if (
    newWidth 0ThumbnailWidth newWidth;
       if (
    newHeight 0ThumbnailHeight newHeight;
       if (
    overwrite)
        
    owr true;
       else
        
    owr false;

       
    int pathCheck = (destPath.Substring(destPath.LastIndexOf('/') + 1)).Length;
       if (
    pathCheck 0destPath += "/";

       
    string fileName Path.GetFileName(file.FileName);
       
    double orgImgWidth 0.0;
       
    double orgImgHeight 0.0;
       
    double rThumbnailWidth 0.0;
       
    double rThumbnailHeight 0.0;

       
    destPath Server.MapPath(destPath);
       
       if ( (!
    File.Exists(destPath fileName)) && (fileName.Length != 0) || (owr))
        {
         if (!
    IsImage(fileName))
          {
           if (
    fileName.Length != 0
             
    Status.Text += "<span style=\"color:Red;\">File '" fileName "' is not a valid image format. Upload... Aborted.</span>
    "
    ;
           return;
          } 
    // if (!IsImage(fileName))

         
         
    using(System.Drawing.Image image System.Drawing.Image.FromStream(file.InputStream))
          {
           
    rThumbnailWidth ThumbnailWidth;
           
    rThumbnailHeight ThumbnailHeight;
           
    orgImgWidth image.Width;
           
    orgImgHeight image.Height;
           
           
    // Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di 
           // quest'ultimo alle dimensioni dell'immagine.
           
    if (orgImgWidth rThumbnailWidthrThumbnailWidth image.Width;
           if (
    orgImgHeight rThumbnailHeightrThumbnailHeight image.Height;
           
           
    // Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla.
           // quindi se l'immagine è quadrata...
           
    if (image.Width != image.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 (image.Width image.Height)
              {
               
    // L > H => L = tL
               // La larghezza del TN sarà quella da noi stabilita
               // quindi dobbiamo solo assegnarla.
               
    rThumbnailWidth rThumbnailWidth;
               
    // L'altezza del TN invece dovrà essere ricalcolata 
               // in proporzione alla larghezza dell'immagine originale.
               // L > H => tH = (H * tL)/ L
               
    rThumbnailHeight = (double)((image.Height rThumbnailWidth) / image.Width);
              } 
    // if (tmpImage.Width > tmpImage.Height)
             
    else
              {
               
    // Altrimenti se l'immagine è più alta
               
    if (image.Width image.Height)
                {
                 
    // L < H => H = tH
                 // L'altezza del TN sarà quella da noi stabilita
                 // quindi dobbiamo solo assegnarla.
                 
    rThumbnailHeight rThumbnailHeight;
                 
    // La larghezza del TN invece dovrà essere ricalcolata 
                 // in proporzione alla altezza dell'immagine originale.
                 // L < H => tL = (L * tH)/ H
                 
    rThumbnailWidth = (double)((image.Width rThumbnailHeight) / image.Height);
                } 
    // if (image.Width < image.Height)
              
    // else
            
    // if (image.Width != image.Height)

           
    using(Bitmap bitmap = new Bitmap(image, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
            {
             
    string message "Uploaded";
             if (
    File.Exists(destPath fileName) && (owr)) message "OverWritted";

             
    bitmap.Save(destPath fileNameimage.RawFormat);
             
    Status.Text += "<span style=\"color:Green;\">File '" fileName " @ [" + (int)(orgImgWidth) + "px X " + (int)(orgImgHeight) + "px]' " message " with this new size [" + (int)(rThumbnailWidth) + "px X " + (int)(rThumbnailHeight) + "px]</span>
    "
    ;
            } 
    // using(Bitmap bitmap = new Bitmap(image, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
          
    // using(System.Drawing.Image image = System.Drawing.Image.FromFile(file))
        
    // if ( (!File.Exists(destPath + fileName)) && (fileName != "") || (owr))
       
    else
        {
         if (
    File.Exists(destPath fileName) && (!owr))
            
    Status.Text += "<span style=\"color:Red;\">Error : The file \"<u>[b][i]" fileName "[/i][/b]</u>\" already exist... Upload Aborted.</span>
    "
    ;
        }
      } 
    //  void UploadImage(HttpPostedFile file)


    protected void SubmitButton_Click(Object senderEventArgs e)
     {
      
    HttpFileCollection uploadedFiles Request.Files;

      
    Status.Text "";

      for (
    int i 0uploadedFiles.Count++)  
       {
        
    // Qui sotto definisci le dimensioni che vuoi, la cartella di destinazione
        // e se l'applicazione deve sovrascrivere o no i files preesistenti.
        //
        // UploadAndResizeAnImage(HttpPostedFile file, double newWidth, double newHeight, string virPath, bool overwrite)
        //
        // Quindi in se scrivo come qui sotto :
        
    UploadAndResizeAnImage(uploadedFiles[i], 640.0480.0"./public/"false);
        
    // significa che voglio che ogni immagine inviata (uploadedFiles[i])
        // venga ridimensionata a 640x480 (tenendo conto però delle proporzioni originali)
        // nella cartella "./public/" (che dovrà avere i permessi di scrittura)
        // e se il file esiste già non deve essere sovrascritto (overwrite = false).
        // Chiaro? Più di così ;)
       
    }

      
    Status.Text += "
    <center><pre>Coded by <a href=\"http://forum.html.it/forum/member.php?s=&action=getinfo&userid=83362\" title=\"R.B.Riddick\" target=\"blank\">R.B.Riddick &copy;</a>
     on 
    <a href=\"http://www.html.it/\" title=\"www.html.it\" target=\"blank\">[url]www.html.it[/url]</a></pre></center>"
    ;
      
    Status.Text += "

    <a href=\"http://validator.w3.org/check?uri=referer\" target=\"blank\"><img src=\"http://www.w3.org/Icons/valid-html401\" alt=\"Valid HTML 4.01 Transitional\" height=\"31\" width=\"88\" border=\"0\"></a></p>"
    ;
     } 
    // protected void SubmitButton_Click(Object sender, EventArgs e)

    </script>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
    <html>
     <head>
      <link rel="icon" href="favicon.ico" type="image/x-icon">
      <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
      <title><asp:Literal id="titletext" runat="server"/></title>
      <style type="text/css">
      body
       {
         background:#2288DD;
       }
      a:link
       {
        color: Blue;
        text-decoration: none;
       }
      a:active
       {
        color: Blue;
        text-decoration: none;
       }
      a:visited
       {
        color: Blue;
        text-decoration: none;
       }
      a:hover
       {
        color: Blue;
        font-weight: bold;
        text-decoration: none;
       }
      </style>
    </head>

     <body>

       <div align="center">
       <h2><asp:Literal id="titletext2" runat="server"/></h2>
        <form name="inviafile" id="inviafile" enctype="multipart/form-data" runat="server">

         Select File1:
         <input id="File1" type="file" runat="Server"/>

         Select File2:
         <input id="File2" type="file" runat="Server"/>

         Select File3:
         <input id="File3" type="file" runat="Server"/>

         Select File4:
         <input id="File4" type="file" runat="Server"/>

         Select File5:
         <input id="File5" type="file" runat="Server"/>

         Select File6:
         <input id="File6" type="file" runat="Server"/>

         Select File7:
         <input id="File7" type="file" runat="Server"/>

         Select File8:
         <input id="File8" type="file" runat="Server"/>

         Select File9:
         <input id="File9" type="file" runat="Server"/>

         Select File10:
         <input id="File10" type="file" runat="Server"/>

         Select File11:
         <input id="File11" type="file" runat="Server"/>

         Select File12:
         <input id="File12" type="file" runat="Server"/>

         Select File13:
         <input id="File13" type="file" runat="Server"/>

         Select File14:
         <input id="File14" type="file" runat="Server"/>

         Select File15:
         <input id="File15" type="file" runat="Server"/>


         <div align="center"><input id="Submit1" type="submit" value="Upload Files" runat="Server" onserverclick="SubmitButton_Click"/></div>
         

         <asp:Label id="Status" runat="server"></asp:Label>       
        </form>
       </div>
     </body>
    </html> 
    dai un'occhiata che ti ho scritto nella funzione
    "protected void SubmitButton_Click(Object sender, EventArgs e)"
    ci sono dei commenti che penso bastino per farti capire cosa devi fare.

    Se vuoi fare l'upload di un solo file basta che cancelli questa parte
    di codice
    Codice PHP:
         Select File2:
         <
    input id="File2" type="file" runat="Server"/>

         
    Select File3:
         <
    input id="File3" type="file" runat="Server"/>

         
    Select File4:
         <
    input id="File4" type="file" runat="Server"/>

         
    Select File5:
         <
    input id="File5" type="file" runat="Server"/>

         
    Select File6:
         <
    input id="File6" type="file" runat="Server"/>

         
    Select File7:
         <
    input id="File7" type="file" runat="Server"/>

         
    Select File8:
         <
    input id="File8" type="file" runat="Server"/>

         
    Select File9:
         <
    input id="File9" type="file" runat="Server"/>

         
    Select File10:
         <
    input id="File10" type="file" runat="Server"/>

         
    Select File11:
         <
    input id="File11" type="file" runat="Server"/>

         
    Select File12:
         <
    input id="File12" type="file" runat="Server"/>

         
    Select File13:
         <
    input id="File13" type="file" runat="Server"/>

         
    Select File14:
         <
    input id="File14" type="file" runat="Server"/>

         
    Select File15:
         <
    input id="File15" type="file" runat="Server"/> 
    Se vuoi aumentare il numero di file inviabili fai esattamente
    il contrario quindi aggiungi sotto al codice di prima
    Codice PHP:
    Select File16: <input id="File16" type="file" runat="Server"/>


    Select File17: <input id="File18" type="file" runat="Server"/>


    etc... 
    Chiaro?
    Spero di esserti stato utile e che, al contrario di altre persone,
    lasci/riporti nello script il mio nickname.

    Quindi se hai problemi non postare nuovamente il codice
    in un nuovo topic ma fatti vivo qui almeno vedrò di aiutarti.

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

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

  9. #9
    ciao, ho provato il tuo codice ma ho questo errore.
    premetto che nn conosco C# ma lo sto imparando adesso...

    posto l'errore
    A generic error occurred in GDI+.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.

    Source Error:


    Line 140: if (File.Exists(destPath + fileName) && (owr)) message = "OverWritted";
    Line 141:
    Line 142: bitmap.Save(destPath + fileName, image.RawFormat);
    Line 143: Status.Text += "<span style=\"color:Green;\">File '" + fileName + " &#64; [" + (int)(orgImgWidth) + "px X " + (int)(orgImgHeight) + "px]' " + message + " with this new size [" + (int)(rThumbnailWidth) + "px X " + (int)(rThumbnailHeight) + "px]</span>
    ";
    Line 144: } // using(Bitmap bitmap = new Bitmap(image, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
    come posso risolvere ?
    grazie mille
    -------------------------
    ..::`DrUmM\n0`::..
    www.jonathandomenici.com

  10. #10
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    a me funziona

    Grazie mille gentilissimo, l'unica cosa mi da errore dove vuoi far uscire la scritta da chi è stato fatto, va bene se te la metto io statica senza che la scrivi così dinamicamente. :-)

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.