Salve a tutti, utilizzo questo script per il resize delle immagini:
Lo richiamo in questo modo:codice:<%@ 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("nwidth") is Nothing Then width = Int32.Parse(Request.QueryString("nwidth")) End if if not Request.QueryString("nheight") is Nothing Then height = Int32.Parse(Request.QueryString("nheight")) 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 </SCRIPT>
img.aspx?img=tazza.jpg&nwidth=450
Funziona molto bene, ma in questo modo non mi discrimina le immagini orizzontali da quelle verticali, ergo quelle orizzontali risultano essere piú piccole.
Vorrei fare in modo che lo script riuscisse a valutare quale dimensione (altezza o larghezza) dell'immagine sia maggiore, e di conseguenza fare il resize basandosi sulla dimensione maggiore. Non conosco l'asp.net, non sarei capace di fare questa cosa da solo.
Grazie anticipate a chi mi aiuta![]()

Rispondi quotando
