DIC
31

Buon Anno 2009!

 

Che dire di questo 2008 passato se non che, come capita poi tutti gli anni, ci si aspettava qualcosa di più. Per l’occasione ho deciso di selezionare per voi i migliori avvenimenti di questo anno, mese per mese, seguendo l’onda di Napolux:

buon-2009

Auguro a tutti voi visitatori un felice 2009, sperando che sia meglio di questo 2008 passato.

Buon 2009!

DIC
31

dotnetMolto spesso ci troviamo a lavorare con le immagini quando programmiamo. Abbiamo già visto come salvare le immagini in formato JPEG, come conoscere la loro dimensione prima di salvarle su disco e anche come ottenere l’effetto GrayScale. Vediamo come applicare alle immagini presenti in un Image un effetto particolarmente suggestivo per quanto banale possa risultare: l’effetto sepia.

Rimanendo sull’onda dell’articolo precedente, creiamo una funzione che ci modifichi i pixel secondo alcune regole di cambio colore:


private Color TransformColorToSepia(Color inputColor)
{
int outputRed = (int)((inputColor.R * .393) + (inputColor.G * .769) + (inputColor.B * .189));

int outputGreen = (int)((inputColor.R * .349) + (inputColor.G * .686) + (inputColor.B * .168));

int outputBlue = (int)((inputColor.R * .272) + (inputColor.G * .534) + (inputColor.B * .131));

Color outputColor = Color.FromArgb((outputRed < = 255) ? outputRed : 255, (outputGreen <= 255) ? outputGreen : 255, (outputBlue <= 255) ? outputBlue : 255);

return outputColor;

}

(All'interno dell'articolo una soluzione sicuramente più performante)

Continua a leggere "Guide C# – Effetto Sepia in C#"

dotnetMolto spesso ci troviamo a lavorare con le immagini quando programmiamo. Abbiamo già visto come salvare le immagini in formato JPEG e anche come conoscere la loro dimensione prima di salvarle su disco. Vediamo come applicare alle immagini presenti in un Image un effetto particolarmente suggestivo per quanto banale possa risultare: l’effetto bianco e nero (o grayscale, scala di grigi).

Prima di iniziare, occore capire bene come ottenere questo effetto e Wikipedia ci aiuta molto in questo, infatti cercando “grayscale” nella versione inglese dell’enciclopedia troviamo:

To convert any color to a grayscale representation of its luminance, first one must obtain the values of its red, green, and blue (RGB) primaries in linear intensity encoding. Then, add together 30% of the red value, 59% of the green value, and 11% of the blue value.

Ovvero, in italiano:

Per convertire ogni colore in una rappresentazione in scala di grigi, è necessario ottenere i suoi valori di Rosso, Verde e Blu (RGB). A questo punto basta sommare i tre valori rispettivamente al 30% del rosso, 59% del verder e 11% del blu.

(All'interno la spiegazione dettagliata di come ottenere il risultato)

Continua a leggere "Guide C# – Effetto Scala di Grigi in C#"

dotnetLavorando in .NET può capitare spesso di imbattersi con lavori che richiedano di manipolare delle immagini e talvolta può capitare di volere applicare dei filtri alle suddette. Il metodo più immediato che può venire in mente è quello di effettuare delle modifiche pixel per pixel all’immagine, scorrendo quella di partenza su entrambe gli assi X ed Y. Cerchiamo di comprendere meglio questo concetto partendo dalla teoria.

Quando noi scattiamo una fotografia, ad esempio questa, il sensore CCD della nostra fotocamera cattura ogni singola informazione luminosa proveniente dall’ottica in modo ordinato ed in base alla sua risoluzione restituisce una serie di bit che solitamente compongono il formato RAW della fotografia che vengono poi immagazzinati sotto forma di un’immagine JPEG, ad esempio questa:

paesaggio-germania

Una volta che riportiamo questa fotografia su uno schermo qualsiasi, i bit di colore devono venire nuovamente riclassificati secono i loro valori fondamentali, il Rosso, il Verde ed il Blu (in inglese RGB) in modo che il nostro occhio possa vedere le differenze tra un punto e l’altro. A tal proposito, quando fu inventato il primo schermo a colori, pensarono bene di accostare una moltitudine di punti (i pixel) costituiti a loro volta da 3 puntini luminosi guarda caso rossi, verdi e blu e dare loro tanta più illuminazione quanta ne è specificata nell’informazione da rappresentare.

(All'interno una spiegazione approfondita sull'utilizzo delle ColorMatrix)

Continua a leggere "ColorMatrix – Effetti Pixel per Pixel in C#"

DIC
29

Un nuovo tema per tutto l’anno!

Cari visitatori, ecco a voi il regalo per l’anno nuovo che vi avevo promesso: il nuovo layout! Come vedete sono cambiate parecchie cose, anche se a dir la verità questo è solo l’inizio. Con il passare dei giorni vedrete altre piccole migliorie che sto pian piano implementando al sito, per renderlo più funzionale, leggero e leggibile.

allyear-theme-screenshot

La particolarità di questo tema che ho creato io è che si adatta automaticamente al periodo dell’anno cambiando tonalità e immagini, in modo da essere sempre al passo con i tempi e per rendere più gradevole a voi lettori la lettura degli articoli. Insomma, io sono molto contento del mio lavoro. Voi invece, cosa ne pensate?

PS: il tema è compatibile con tutti i browser tranne che con IE6, a giorni l’update definitivo.

Aggiornamento delle 15.13:

Adesso il tema è compatibile anche con IE6, dopo un match IE6 vs CSS il tutto si è sistemato. Voi fatemi sapere se ci sono problemi. A presto!

dotnetVediamo in questo breve articolo come testare le performance dei nostri algoritmi scritti in C#. Il metodo risolutivo è assolutamente analogo a quanto accade in JAVA: occorre calcolare il tempo corrente in nanosecondi proveniente dal clock di sistema, eseguire l’algoritmo e subito dopo eseguire la differenza dal tempo corrente a quello precedentemente calcolato. Ovviamente nel frattempo è passato un certo tempo per via dell’algoritmo che abbiamo posizionato tra i due calcoli.

(All'interno dell'articolo il codice)

Continua a leggere "Testare il tempo di esecuzione degli algoritmi in C#"