Regolare luminosità immagine – Codice VB.NET


Categoria dell'articolo: Codice VB.NET

Listati in codice Visual Basic.NET, elaborati o rielaborati e adattati da IngAC con la versione 2015. Funzioni e subroutine varie utili alla creazione di programmi.





Articolo pubblicato da:

Condividi articolo:

Regolare luminosità immagine: una semplice funzione in codice VB.NET

Introduzione

Può capitare che in alcune parti del nostro programma occorra modificare per qualche motivo la luminosità di un’immagine. Ad esempio se stiamo implementando un elaboratore di immagini, sapere come regolare luminosità di una immagine tramite vb.net è uno dei passi fondamentali. La funzione che ho implementato, girando qua e la sul web e rielaborando il tutto, che si occupa appunto di regolare luminosità di immagini è: IngAC_IMMAGINE_LUMINOSITA (ByVal Immagine As Bitmap, ByVal Luminosita As Single) As Bitmap.

Public Function IngAC_IMMAGINE_LUMINOSITA(ByVal Immagine As Bitmap, ByVal Luminosita As Single) As Bitmap
        'luminosità range [-1,+1]=>[0,100]
        If Luminosita < 0 Then Luminosita = 0
        If Luminosita > 100 Then Luminosita = 100
        Dim br As Single = 2 * Luminosita / 100 - 1 '-1, +1
        ' Si crea la Brightness_Matrix
        Dim Brightness_Matrix As Single()() = {
         New Single() {1, 0, 0, 0, 0},
         New Single() {0, 1, 0, 0, 0},
         New Single() {0, 0, 1, 0, 0},
         New Single() {0, 0, 0, 1, 0},
         New Single() {br, br, br, 0, 1}}
        ' Si crea una copia dell'immagine di partenza 
        Dim bmp As New Bitmap(Immagine)
        Dim imgattr As New ImageAttributes()
        Dim rc As New Rectangle(0, 0, Immagine.Width, Immagine.Height)
        Dim g As Graphics = Graphics.FromImage(Immagine)
        Dim cm As New ColorMatrix(Brightness_Matrix)
        '  Si associa la Brightness_Matrix con una ImageAttributes
        imgattr.SetColorMatrix(cm)
        ' Si applica la color_matrix all'immagine
        g.DrawImage(bmp, rc, 0, 0, Immagine.Width, Immagine.Height,
                                  GraphicsUnit.Pixel, imgattr)
        ' Reset
        g.Dispose()
        Return Immagine ' Restituisce l'immagine modificata
    End Function
 

Come fare a regolare luminosità immagine in VB.NET

La funzione IngAC_IMMAGINE_LUMINOSITA ha come input:

  • Immagine che è l’immagine orginale che può provenire sia da file che da picturebox o anche da altri oggetti image o bitmap.
  • Luminosità che appunto rappresenta il valore della luminosità che vogliamo applicare e varia tra zero (buio totale) a 100 (completamente bianco);

In output si avrà un’immagine uguale all’originale ma modificata nella luminosità, da usare come più ci aggrada.

Funzionamento di IngAC_IMMAGINE_LUMINOSITA ()

Il funzionamento è lineare; occorre innanzi tutto includere Imports System.Drawing.Imaging che permette di accedere alle funzionalità grafiche di vb.net e alle varie classi inerenti. Effettuato il controllo sull’input e creata la matrice Brightness_Matrix , il tutto per permettere una maggiore velocità di elaborazione rispetto ai classici cicli for pixel per pixel, si passa alla definizione dell’area da elaborare (tramite l’oggetto rectangle) e infine all’elaborazione vera e propria con g.DrawImage.

Link Utili:

Regolare luminosità - Codice VB.NET

Regolare luminosità – Codice VB.NET



Random Post

SSRL – Sviluppo Sistemi Ridotti Lotto – Free Edition – Official Page

SSRL - Sviluppo Sistemi Ridotti Lotto - Sistema ridotto generato

SSRL ©2017 – Sviluppo Sistemi Ridotti Lotto – Free Edition. Pagina Ufficiale. SSRL ©2017 – Sviluppo Sistemi Ridotti Lotto v1.0 F.E : il software per lo sviluppo di Sistemi Ridotti...

Vai al post...

Immagine Watermark – Codice VB.NET

Immagine watermark - Codice VB.NET

Immagine Watermark: come sovrapporre un’ immagine con colore trasparenza e regolazione dell’intensità della stessa con una funzione in codice VB.NET Introduzione Può capitare che in al...

Vai al post...

Matrimonio, nozze – Interpretazione dei sogni

Matrimonio - Significato del sogno

Matrimonio e nozze: interpretazione, significato e numeri associati al sogno. Il matrimonio rappresenta nei sogni il simbolo di un cambiamento molto significativo che si verificherà nella vita del s...

Vai al post...

PUBBLICITÀ



Una funzione per unire due file (merge file) ed eventualmente manipolarli, tramite codice VB.NET Unire
Una funzione per generare numeri primi, tutti i numeri primi, entro un dato intervallo tramite
Sostituire o eliminare in una stringa una substring con un'altra (o con una stringa vuota)
Disclaimer:


Questo blog NON è un prodotto editoriale ai sensi della legge n° 62 del 7 marzo 2001. Le immagini tratte da internet che possano violare i diritti di autore, previa comunicazione, attraverso la sezione -contatti-, verranno prontamente rimosse o sostituite.

Copyright:


I contenuti presenti su ROMOLETTO BLOG dei quali è autore il proprietario del blog non possono essere copiati, riprodotti, redistribuiti perché appartenenti all autore stesso. Si vieta la copia e la riproduzione dei contenuti in qualsiasi modo o forma. Si vieta altresì la pubblicazione e la redistribuzione dei contenuti non autorizzata espressamente dell autore.


Copyright © 2011 / 2017 - ROMOLETTO BLOG - All Right Reserved

IngAC

Informazioni su Romoletto

Ingegnere Civile, Blogger, Programmatore VB.NET, Lezioni private per scuole medie inferiori e superiori. Per contattarmi scorri la home fino in fondo e vai al form -Contatti-

Navigazione per Articoli della stessa Categoria