Negativo di una 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:

Come ottenere il negativo di una immagine: ovvero invertire i colori una semplice funzione in codice VB.NET

Introduzione

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

Public Function IngAC_IMMAGINE_NEGATIVO(ByVal Immagine As Bitmap) As Bitmap
 
        ' Si crea la Negative_Matrix 
         Dim Negative_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() {1, 1, 1, 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(Negative_Matrix)
        '  Si associa la Negative_Matrix  con una ImageAttributes
        imgattr.SetColorMatrix(cm)
        ' Si applica la Negative_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 Negativo immagine in VB.NET

La funzione IngAC_IMMAGINE_NEGATIVO 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 negativo, da usare come più ci aggrada.

Funzionamento di IngAC_IMMAGINE_NEGATIVO()

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 Negative_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:

Negativo immagine - Codice VB.NET

Negativo immagine – Codice VB.NET



Random Post

Amici, amico – Interpretazione dei sogni

Amici - Interpretazione dei sogni

Sognare un amico, gli amici d’infanzia: significati, interpretazioni e numeri della cabala associati. Gli amici d’infanzia o anche i compagni di scuola o compagni di squadra o gli amici de...

Vai al post...

Centraline aggiuntive Clio IV

Centraline aggiuntive Renault Clio IV Diesel

Centraline aggiuntive per la Renault Clio Diesel Una breve carrellata di informazioni su cosa siano le centraline aggiuntive per la nostra Clio Diesel con alcune comparazioni di prezzi e caratterist...

Vai al post...

Montagna, monti – Interpretazione dei sogni

Montagna - Significato del sogno

Le montagne, i monti, le cime innevate, una montagna particolare: significato, interpretazione del sogno e numeri associati. La montagna può essere un luogo di pericolo, maestoso, panoramico e tranq...

Vai al post...

PUBBLICITÀ



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