Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    532

    ridimensionare una foto

    uso C# e asp.net,

    ho una cartella sul server web con una serie di immagini,
    alcune hanno una larghezza > di 480 px,

    come posso ridimensionarle a 480 px, prima di caricarle in una pagina web.aspx?

    oppure

    come posso ridimensionarle a 480 px da pagina.aspx (C#) prima di fare un upload sul server web ?

    Grazie sempre

  2. #2
    System.Drawing.Image,
    attenzione, leggi attentamente come è fatto questo oggetto e come poterlo gestire, sopratutto in ambito web, presenta alcune caratteristiche che "vanno gestite" a differenza del contesto Client.

    & good luck
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Come al solito, ti consiglio di spulciare il codice per imparare l'uso del namespace System.Drawing sopra indicato da Roby. Nei seguenti tre articoli ci sono delle classi che ne fanno uso:

    1 http://www.imente.org/index.php/deve...sses/wbresize/

    2 http://simovb.blogspot.com/2007/02/r...net-e-gdi.html

    3 http://simovb.blogspot.com/2007/02/u...-delle_27.html

  4. #4
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Di seguito un esempio che feci in 1.1 per files JPG, in una pagina di registrazione dell'utente. Ma attenzione alla qualità, ti ho postato quei link apposta.

    Ma soprattutto, attenzione ai --permessi di scrittura--

    codice:
               Imports System.Drawing
               Imports System.Drawing.Drawing2D
    
    
               ' ========================
               ' UPLOAD & RESIZE 100x100
               ' ========================
               Dim PercorsoFoto As String
               Dim NomeFileJPG As String
               PercorsoFoto = <controllo_fileupload>.PostedFile.FileName
               NomeFileJPG = System.IO.Path.GetFileName(PercorsoFoto)
               <controllo_fileupload>.PostedFile.SaveAs(Request.MapPath("foto_utenti\") & NomeFileJPG)
    
    
               Dim nuovagrandezza As New System.Drawing.Size
               nuovagrandezza.Width = 100
               nuovagrandezza.Height = 100
    
               Dim ImmaginePiccola As Bitmap
               ImmaginePiccola = ResizeImage(ImmagineGrande, nuovagrandezza, True)
               ImmaginePiccola.Save(<tuopercorso> & <tuonomefoto> & "_THUMB.JPG")
    
    
    
              ' ========================
              ' Function per il resize
              ' ========================
              Private Function ResizeImage(ByVal currentImage As System.Drawing.Image, ByVal newSize As Size, Optional ByVal MaintainAspect As Boolean = True) As System.Drawing.Image
                If MaintainAspect = True Then
                    newSize = CalculateImageSize(currentImage.Size, newSize)
                End If
    
                Dim TargetBitmap As New Bitmap(currentImage, newSize)
                Dim TargetGraphic As Graphics = Graphics.FromImage(TargetBitmap)
    
                TargetGraphic.InterpolationMode = InterpolationMode.HighQualityBicubic
                TargetGraphic.SmoothingMode = SmoothingMode.HighQuality
                TargetGraphic.DrawImage(currentImage, New Rectangle(0, 0, newSize.Width, newSize.Height), 0, 0, currentImage.Width, currentImage.Height, GraphicsUnit.Pixel)
    
                TargetGraphic.Dispose()
                TargetGraphic = Nothing
    
                Return TargetBitmap
              End Function
    
    
              Private Function CalculateImageSize(ByVal ImageSize As Size, ByVal newsize As Size) As Size
                Dim mySize As Size
                Dim rNew As Double
                Dim rCur As Double
    
                rNew = newsize.Width / newsize.Height
                rCur = ImageSize.Width / ImageSize.Height
    
                If rCur > rNew Then
                    mySize.Width = newsize.Width
                    mySize.Height = CInt(mySize.Width / rCur)
                End If
    
                If rCur < rNew Then
                    mySize.Height = newsize.Height
                    mySize.Width = CInt(mySize.Height * rCur)
                End If
    
                If rCur = rNew Then
                    mySize.Width = newsize.Width
                    mySize.Height = newsize.Height
                End If
    
                Return mySize
              End Function

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.