Salve,
da parecchio tempo usiamo questo script in asp.net per ridimensionare le immagini in linea. Il file si chiama zoom.aspx e di solito lo usiamo per richiamare le immagini jpeg ridimensionate in questo modo [img]zoom.aspx?imgfile=nomedelfile.jpg&with=320&height= 240[/img] in pratica così facendo troviamo l'immagine (solitamente grande) ridimensionata lato server i peso e dimensioni a 320x240 o cmq in proporzioni per rimanere dentro questo spazio:
Ecco lo script:
Il problema è che con immagini non a 72 dpi (quasi tutte quelle che escono dalle fotocamere digitali ultimamente) il risultato è pessimo. potete verificare voi stessi. Esiste modo di metterci mano o ne esistono altri che lavorano in modo analogo con risultati più elastici?codice:<%@ LANGUAGE="VB" AutoEventWireup="true" %> <%@ Import Namespace="System.Drawing" %> <%@ Import Namespace="System.Drawing.Imaging" %> <script runat="server" language="VB"> Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Dim MaxWidth As Single = Convert.ToSingle(Request.QueryString("width")) Dim MaxHeight As Single = Convert.ToSingle(Request.QueryString("height")) Dim imgFileName As String = Request.QueryString("imgFile") Dim objImage As System.Drawing.Image Dim objResizedImg As System.Drawing.Image Dim imgOutputFormat As ImageFormat Dim ContentTypeName As String Dim DimOrizz As Integer Dim DimVert As Integer 'Crea una istanza della immagine originale objImage = System.Drawing.Image.FromFile(Page.MapPath(imgFileName)) DimOrizz = objImage.Width DimVert = objImage.Height If DimOrizz > MaxWidth Then DimOrizz = MaxWidth DimVert = (MaxWidth / objImage.Width) * objImage.Height If MaxHeight > 0 Then If DimVert > MaxHeight Then DimVert = MaxHeight DimOrizz = (MaxHeight / objImage.Height) * objImage.Width End If End If Else If DimVert > MaxHeight Then DimVert = MaxHeight DimOrizz = (MaxHeight / objImage.Height) * objImage.Width Else DimOrizz = objImage.Width DimVert = objImage.Height End If End If 'Crea una istanza della immagine ridotta objResizedImg = objImage.GetThumbnailImage(DimOrizz, DimVert, AddressOf On_GetThumbnailAbort, IntPtr.Zero) 'Seleziona la estensione Select Case LCase(imgFileName.Split(".")(1).ToString) Case "gif" imgOutputFormat = ImageFormat.Gif contentTypeName = "image/gif" Case "jpg" imgOutputFormat = ImageFormat.Jpeg contentTypeName = "image/jpeg" End Select 'Imposta il MIME-Type per il brwoser Page.Response.ContentType = contentTypeName 'Persiste immagine ridemensionata nello strema di Output objResizedImg.Save(Page.Response.OutputStream, imgOutputFormat) objImage.Dispose() objResizedImg.Dispose() End Sub Private Function On_GetThumbnailAbort() As Boolean Return False End Function </script>
Grazie mille


Rispondi quotando