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
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub