Ciao a tutti,
Sto uscendo pazzo con questo script cercando d'impostare i settaggi per una qualità alta.
Ma niente ho solo errori.
Qualcuno può aiutarmi?
<%@ 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("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'e` da ridimensionare?
if width>0 or height>0 then
' se e` 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>

Rispondi quotando
Mi dispiace, ma non me la sento di assecondarti in una operazione che giudico sbagliata come impostazione. Io ti consiglio di ricordarti il "Divide et impera" che nel tuo caso significa dividere il problema in più problemi più semplici per essere affrontati più facilmente.
