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>
Approfondimenti
#446 - Upload con ASP.NET di immagini con controllo su content type, dimensione e larghezza/altezzahttps://www.aspitalia.com/script/446/Upload-ASP.NET-Immagini-Controllo-Content-Type-Dimensione-Larghezza.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Load test di ASP.NET Core con k6
Short-circuiting della Pipeline in ASP.NET Core
Implementare il throttling in ASP.NET Core
Generare file PDF da Blazor WebAssembly con iText
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
I più letti di oggi
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Disabilitare automaticamente un workflow di GitHub (parte 2)
- Ottimizzazione dei block template in Angular 17
- Paginare i risultati con QuickGrid in Blazor
- Ed infine anche il calendario :)
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!