Per chi non mastica molto il C# e volesse capire meglio il funzionamento dello script, ecco una bella 'traduzione' in VB.
Anche se sinceramente per me C# o VB è indifferente (io uso VB hehehe).
Il codice va preso e incollato in una pagina chiamata "GetThumbnail.aspx".
codice:<%-- ------------ Descrizione: ------------ Script per la creazione delle miniature OnTheFly di immagini. Lo script (in C#) è stato preso dal forum di www.HTML.it , originariamente postato da R.B. Riddick, modificato da InstinctCoder e infine da me (Fusion) 'tradotto' in VB.NET. -------------------- Esempio di Utilizzo: -------------------- <html> <body> [img]GetThumbnail.aspx?src=immagine.jpg&w=150&h=150[/img] </body> </html> ---------- Parametri: ---------- src : percorso del file da utilizzare per creare la miniatura (thumbnail) w : larghezza della miniatura h : altezza della miniatura --%> <%@ Page Language="VB" %> <%@ import Namespace="System"%> <%@ import Namespace="System.IO"%> <%@ import Namespace="System.Drawing" %> <%@ import Namespace="System.Drawing.Imaging" %> <%@ import Namespace="System.Text.RegularExpressions" %> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim ThumbnailWidth As Integer = 64 Dim ThumbnailHeight As Integer = 64 Dim strFileName As String = "" Dim orgImgWidth As Double = 0.0 Dim orgImgHeight As Double = 0.0 Dim rThumbnailWidth As Double = 0.0 Dim rThumbnailHeight As Double = 0.0 Dim orgImage As Drawing.Image If (Request.QueryString("w") <> "") Then ThumbnailWidth = Convert.ToInt32(Request.QueryString("w")) End If If (Request.QueryString("h") <> "") Then ThumbnailHeight = Convert.ToInt32(Request.QueryString("h")) End If If (Request.QueryString("src") <> "") Then strFileName = Convert.ToString(Request.QueryString("src")) End If If (strFileName <> "") Then Try orgImage = Drawing.Image.FromFile(Server.MapPath(strFileName)) Using tmpImage As Bitmap = New Bitmap(orgImage) rThumbnailWidth = ThumbnailWidth rThumbnailHeight = ThumbnailHeight orgImgWidth = tmpImage.Width orgImgHeight = tmpImage.Height ' Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di ' quest'ultimo alle dimensioni dell'immagine. If (orgImgWidth < ThumbnailWidth) Then ThumbnailWidth = tmpImage.Width End If If (orgImgHeight < ThumbnailHeight) Then ThumbnailHeight = tmpImage.Height End If ' Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla. If (tmpImage.Width <> tmpImage.Height) Then ' Altrimenti continuiamo a fare i nostri controlli per calcolarne le ' giuste dimensioni e quindi creare la nostra nuova immagine con ' l'aspectratio corretto. If (tmpImage.Width > tmpImage.Height) Then rThumbnailWidth = ThumbnailWidth rThumbnailHeight = CType((tmpImage.Height * ThumbnailWidth / tmpImage.Width), Double) ElseIf (tmpImage.Height > tmpImage.Width) Then rThumbnailHeight = ThumbnailHeight rThumbnailWidth = CType((tmpImage.Width * ThumbnailHeight / tmpImage.Height), Double) End If End If ' Liberiamo la risorsa tmpImage.Dispose() End Using Using fBitmap As Bitmap = New Bitmap(orgImage, CType(rThumbnailWidth, Integer), CType(rThumbnailHeight, Integer)) Response.ContentType = orgImage.RawFormat.ToString() Response.Clear() Response.BufferOutput = True Response.AddHeader("Content-Disposition", "filname=" & strFileName) fBitmap.Save(Response.OutputStream, orgImage.RawFormat) fBitmap.Dispose() End Using orgImage.Dispose() Catch ex As Exception Response.Write(ex.Message) End Try End If End Sub </script>
Complimenti a chi ha scritto o collaborato nella scrittura di questo script. Mi è servito a capire un paio di cose visto che sono ancora un bambino che muove i primi passi nel mondo di ASP.NET.
Fusion

Rispondi quotando