ascii art in groovy

Giocando con groovy, ho scritto un semplice programma per trasformare un'immagine in "ascii art".





(su gist trovate il codice completo)


Il programma è molto semplice: un ciclo recupera, per ogni pixel dell'immagine un intero (tramite il metodo image.getRGB) che rappresenta il valore RGB del pixel stesso.


Il metodo image.getRGB ritorna un unsigned integer nella forma AARRGGBB, quindi le istruzioni:



r = 0xff & (argb >>16)


g = 0xff & (argb >> 8)


b = 0xff & argb



servono naturalmente per recuperare i valori delle componenti R (rosso), G (verde) e B (blue).


Il valore massimo tra r, g, b è poi utilizzato per la scelta del carattere che rappresenta il pixel.


Naturalmente si possono pensare algoritmi più evoluti per la scelta del carattere, nonchè espandere il set di caratteri utilizzabili.


A titolo di esempio, questo è un fantastico ritratto del Venni trasformato in ascii art:




Cambiando le impostazioni del terminale si può anche ottenere il negativo :)


Comments

Popular Posts