Immagine GrayScale – Codice VB.NET


Come ottenere un' immagine grayscale: ovvero convertire in scala di grigi un'immagine colori una semplice funzione in codice VB.NET Introduzione Può capitare che in alcune parti del nostro programma occorra ...




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.





Autore articolo:



Come ottenere un’ immagine grayscale: ovvero convertire in scala di grigi un’immagine colori una semplice funzione in codice VB.NET

Introduzione

Può capitare che in alcune parti del nostro programma occorra ottenere per qualche motivo un’immagine grayscale. Ad esempio se stiamo implementando un elaboratore di immagini, sapere come trasformare un’immagine in scala di grigi, tramite codice 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 ottenere l’immagine grayscale è: IngAC_IMMAGINE_SCALAdiGRIGI (ByVal Immagine As Bitmap) As Bitmap.

Public Function IngAC_IMMAGINE_NEGATIVO(ByVal Immagine As Bitmap) As Bitmap
 
        ' Si crea la GrayScale_Matrix 
          Dim GrayScale_Matrix As Single()() = {
               New Single() {0.299, 0.299, 0.299, 0, 0},
               New Single() {0.587, 0.587, 0.587, 0, 0},
               New Single() {0.114, 0.114, 0.114, 0, 0},
               New Single() {0, 0, 0, 1, 0},
               New Single() {0, 0, 0, 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(GrayScale_Matrix )
        '  Si associa la GrayScale_Matrix con una ImageAttributes
        imgattr.SetColorMatrix(cm)
        ' Si applica la GrayScale_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



La funzione immagine grayscale in VB.NET

La funzione IngAC_IMMAGINE_SCALAdiGRIGI 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.

In output si avrà un’immagine uguale all’originale ma modificata in scala di grigi, da usare come più ci aggrada.

Funzionamento di IngAC_IMMAGINE_SCALAdiGRIGI()

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. Creata la matrice GrayScale_Matrix , 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:

Immagine grayscale - Codice VB.NET

Immagine grayscale – Codice VB.NET






Random Post

Parabola P103 – Problemi di Geometria Analitica

Parabola P103 – Problemi risolti di Geometria Analitica Una serie di problemi di geometria analitica risolti durante le ripetizioni date a studenti di Liceo Scientifico, presi da vari testi scola...

Vai al post...

Enneatipo 3: manager

Enneatipo 3: manager Avete fatto il test sull’enneatipo di appartenenza? Avete ottenuto una maggioranza di TRE? allora leggete qua di seguito: Il tipo Tre ha una personalità vivace e reattiva, è ...

Vai al post...

Onde di mare – Ingegneria marittima

Cosa sono le onde di mare: una breve introduzione Le onde di mare sono un moto della superficie delle acque. Esistono onde che si formano per la circolazione di correnti marine causate di differe...

Vai al post...

GSE 2015 – Nuove modalita erogazione incentivi

GSE 2015: Ecco le nuove modalità e tempistiche di erogazione degli incentivi adottate anche per i vecchi impianti. GSE 2015 – Conto Energia La legge 116/2014,  il cosidetto “decreto spalm...

Vai al post...
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