Visualizzazione dei risultati da 1 a 2 su 2

Discussione: compressione immagini

  1. #1

    compressione immagini

    Salve amici navigando qua e la ho trovato alcuni script per la compressione delle immagini jpg con asp.net...

    mimeType = "image/jpeg"

    Function GetEncoderInfo(mimeType As String) As ImageCodecInfo
    Dim encoders() As ImageCodecInfo
    encoders = ImageCodecInfo.GetImageEncoders()
    For j As Integer = 0 To encoders.Length - 1
    If encoders(j).MimeType = mimeType Then
    Return encoders(j)
    End If
    Next

    Return Nothing
    End Function

    per determinare imageCodecInfo e

    ' imposta la compressione a 40
    Dim qualityEncoder As Encoder = Encoder.Quality
    Dim quality As EncoderParameter = New EncoderParameter(qualityEncoder, 40)

    ' aggiunge il parametro di compressione
    Dim codecParams As New EncoderParameters(1)
    codecParams.Param(0) = quality

    ' salva in JPG
    bmp.Save(fileName, jpegCodecInfo, codecParams)
    per la compressione...

    ora dove li inserisco in questo codice che utilizzo per ridimensionare le immagini caricate tramite upload?


    <script language="vb" runat="server">
    Sub Page_Load(Server as Object,e as System.EventArgs)
    Dim redimFoto as String = Request.Querystring("foto")
    Dim RedimSizeThumb as integer = CInt(500)
    Dim RedimSizeFoto as integer = CInt(500)
    ReDimImg("" & redimFoto ,"" & RedimFoto,RedimSizeThumb,0)
    ReDimImg("" & redimFoto ,"" & RedimFoto,RedimSizeFoto,0)
    End Sub

    Public Sub ReDimImg(SourcePath as String,ResizeName as string, width as integer,height as integer)
    Try
    'Creo l'oggetto di riferimento al file originale
    Dim TmpBmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(Server.MapPath (SourcePath)), System.Drawing.Bitmap)
    Dim newWidth,newHeight as string


    'Se il parametro height è lasciato a 0 costruisco il with in maniera proporzionata
    if height = 0 Then
    newHeight = Convert.ToInt32(width / TmpBmp.Width * TmpBmp.Height)
    else
    newHeight = height
    End if
    'Se il parametro with è lasciato a 0 costruisco l'height in maniera proporzionata
    if width = 0 Then
    newWidth = Convert.ToInt32(height / TmpBmp.Height * TmpBmp.Width)
    else
    newWidth = width
    end if
    'Creo la miniatura con lunghezza e larghezza elaborati
    Dim miniaturabmp as New System.Drawing.Bitmap(TmpBmp, newWidth, newHeight)
    'Distruggo l'oggetto dell'immagine originale che non mi serve +
    TmpBmp.Dispose()
    'controllo l'estensione e salvo la miniatura nel giusto formato
    if SourcePath.toLower().EndsWith(".jpg") or SourcePath.toLower().EndsWith(".jpeg") Then
    miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.Jpeg)
    elseif SourcePath.toLower().EndsWith(".gif") Then
    miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.Gif)
    elseif SourcePath.toLower().EndsWith(".png") Then
    miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.Png)
    else
    Response.Write("Errore Formato")
    'Si puo' ampliare l'elseif in questo modo:
    'elseif SourcePath.toLower().EndsWith(".[Estensione]") Then
    'miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.[Estensione])
    'dove [Estensione] puo essere Bmp, Emf, Exif, Tiff, Wmf
    end if
    miniaturabmp.Dispose()
    Catch ex as System.Exception
    'Nel caso stampo l'errore:
    Response.Write("<hr>Errore nel ridimensionamento dell'immagine:
    " & ex.Message & "

    ")
    Response.Write("
    " & ex.StackTrace & "<hr>")
    End Try
    Response.Write("Ridimensionamento effettuato con successo")
    End Sub
    </script>
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    1. non aprire messaggi doppi
    2. quandi scrivi chilometri di codice utilizza il tag [code], almeno rendi piu facile la lettura..
    3. il codice lo inserisci
    codice:
     if SourcePath.toLower().EndsWith(".jpg") or SourcePath.toLower().EndsWith(".jpeg") Then
    'INSERISCI QUA!!!!!
    '****
    Dim qualityEncoder As Encoder = Encoder.Quality
    Dim quality As EncoderParameter = New EncoderParameter(qualityEncoder, 40)
    
    ' aggiunge il parametro di compressione
    Dim codecParams As New EncoderParameters(1)
    codecParams.Param(0) = quality
    
    ' salva in JPG
    miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.Jpeg, codecParams)
    '///
    elseif SourcePath.toLower().EndsWith(".gif") Then
    miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.Gif)
    elseif SourcePath.toLower().EndsWith(".png") Then
    miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.Png)
    else
    Response.Write("Errore Formato")
    'Si puo' ampliare l'elseif in questo modo:
    'elseif SourcePath.toLower().EndsWith(".[Estensione]") Then
    'miniaturabmp.Save(Server.MapPath(ResizeName), System.Drawing.Imaging.ImageFormat.[Estensione])
    'dove [Estensione] puo essere Bmp, Emf, Exif, Tiff, Wmf
    end if

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.