Il formato grafico JPEG permette di impostare la qualità dell'immagine stessa, particolarità che permette il risparmio della dimensione in bytes dell'immagine con un degrado della qualità. Questa opzione, presente in tutti i programmi di grafica, permette di selezionare tale qualità da una scala che varia da 0 a 100 (0 bassa qualità, 100 immagine di altissima qualità).
Anche in .NET, quando manipoliamo immagini JPEG, possiamo decidere e impostare tale qualità. Lo script successivo carica in memoria un'immagine da una cartella del server e prima della sua visualizzazione modifica la qualità a "50". Invito a provare a modificare la variabile "compressione" per vedere le varie differenze nella visualizzazione dell'immagine e la sua dimensione in bytes.
Tale script è utilizzabile con alcune modifiche anche abbinandolo allo script suggerito da Cristian Civera per l'upload e il controlo delle dimensioni in modo da deciderne la qualità prima della memorizzazione (#446).
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script language="vb" runat="server">
Private Sub Page_Load()
dim bm as BitMap
try
Response.Clear()
bm= New Bitmap(Request.MapPath("cartella/immagine.jpg"))
Dim encParams As EncoderParameters = New EncoderParameters()
'0 = minima qualità (immagine molto "sgranata")
'100 = massima qualità (immagine "perfetta")
Dim compressione As Integer = 50
dim encParam as New EncoderParameter(Imaging.Encoder.Quality, compressione)
encParams.Param(0) = encParam
Dim imageCodecs() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders()
Dim imageCodec As ImageCodecInfo = Nothing
Dim i As Integer
For i = 0 to imageCodecs.Length- 1
If imageCodecs(i).MimeType="image/jpeg" Then
imageCodec = imageCodecs(i)
Exit For
End If
Next
'invio a video
Response.ContentType="image/jpeg"
bm.Save(Response.OutputStream, imageCodec, encParams)
catch
Response.Write ("Impossibile visualizzare l'immagine!")
finally
if not bm is nothing then bm.Dispose()
end try
End Sub
</script>Per approfondimenti si veda:
#446 - Upload con ASP.NET di immagini con controllo su content type, dimensione e larghezza/altezza
- Trovare il Page not Found...
- #912 - Composite Custom Control per ASP.NET
- I bug di ASP.NET AJAX 1.0 risolti con ASP.NET AJAX 3.5
- Dal MIX08 la Preview2 di ASP.NET MVC
- #934 - Accedere ai dati usando LinqDataSource
- #946 - Attributi per il supprto a design time di custom control con ASP.NET
- Cosa fare se la vostra applicazione ASP o ASP.NET è vittima di SQL injection
- #918 - Control adapter per cambiare l'output dei controlli di ASP.NET 2.0
- Speciale Custom Control per ASP.NET
- Il nostro nuovo imminente libro in prenotazione: ASP.NET 3.5 per tutti
- Speciale Binding di Windows Presentation Foundation
- WPF: dal DataBinding ai Template - Seconda parte
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!