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"