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:
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>
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?
Grazie mille