Filoweb.it

Ridimensionare le immagini con asp.net da una pagina


FB TW G+ whatsapp RSS FEED
VB.NET
Ridimensionare le immagini con asp.net da una pagina


  Per ovviare al problema è sufficiente quindi creare una pagina, ad esempio img.aspx, che contenga questo codice:

'  Import necessari:
' <%@ Import Namespace=" System.Drawing" %>
' <%@ Import Namespace=" System.Drawing.Imaging" %>

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 height = 0 Then
      height = Convert.ToInt32(width / bmp.Width * bmp.Height)
    End if

    '  (e viceversa)
    if width = 0 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


Per usare lo script è sufficiente passare il percorso virtual dell' immagine, ad esempio in questo modo:

<img src=" img.aspx?img=/logo/logo.gif"  
FB TW G+ whatsapp RSS FEED

filoweb.it è il sito personale di Filippo Brunelli
(c) 2017 Filippo Brunelli
Le immagini ed i testi contenuti nel sito sono di proprietà di Filippo Brunelli salvo diversamente indicato.
L'uso delle immagini e del testo è gratuito per uso personale ed è subbordinato alla citazione della fonte.
Brunelli Filippo declina ogni responsabilità per l'uso che viene fatto delle informazioni presenti nel sito.
FILOWEB.it Piccolo quaderno degli appunti. Argomento: VB.NET, Titolo:Ridimensionare le immagini con asp.net da una pagina. Altri script riguardano: CSS, Jscript, .net, Classic Asp, HTML, Jquery, varie, url rewrite, pagina protetta da password, ecc. Altro su https://www.filoweb.it