Ora che abbiamo arricchito la nostra tavolozza digitale con i grigi e il colore, torniamo alla nostra interfaccia "a codice".

A proposito, un po' di terminologia: quando un sistema, un oggetto, un sito web, un allarme antifurto, insomma, un pezzo di "realtà", offre la possibilità di interagire tramite comandi come quelli che abbiamo visto (rappresentabili digitalmente, eseguibili tramite un computer), si dice che quel sistema "espone" una "interfaccia di programmazione". In realtà, il termine più diffuso è Interfaccia di Programmazione di un'Applicazione, e ancora più diffuso è il suo acronimo inglese, API, del quale forse hai sentito parlare. "Applicazione" ci ricorda che l'espressione è stata coniata pensando ai programmi software.

Noi però ci prenderemo la libertà di usarla in senso più ampio: se un oggetto, anche se non è un programma, ci lascia interagire tramite comandi, diremo che espone un'API.

Forti allora dei nuovi arrivati nel nostro vocabolario, riprendiamo le API esposte dalle nostre immagini pixelate. In particolare, vediamo cosa succede a setPixel...

img.setPixel(colore): "dipinge" il pixel selezionato con il colore specificato.

Per le immagini in bianco e nero, il colore era specificato tramite un numero: '1' per il bianco, '0' per il nero.

Per il colore, invece, abbiamo visto come di numeri ne servano 3. Se usiamo 8 bit per ciascun colore, ciascuna componente sarà un numero che può variare da 0 a 255.

Quindi, se vogliamo specificare un colore, dovremo specificare tre numeri. Come si fa?

Nel linguaggio delle nostre API, un colore si specifica con il valore delle sue componenti. Per capire come, partiamo da un esempio:

[255,0,0]

Come avrai capito questo è un rosso, il più intenso possibile! I numeri sono divisi dalla virgola, e la sequenza è racchiusa tra parentesi quadre.

Quindi, se vogliamo colorare di rosso intenso il pixel selezionato, dobbiamo "passare" [255,0,0] a setPixel, così:

img.setPixel([255,0,0])

Notare come ci vogliano sia le parentesi quadre (che racchiudono le componenti del colore) che quelle tonde (che racchiudono il "parametro" che vuole setPixel, cioè il colore)

Per vedere se ti è tutto chiaro, prova a colorare di rosso il punto in alto a sinistra dello smiley, di verde quello in alto a destra, e di blu quello in basso a destra..

Clicca Coding-mooc Polimi per accedere all'esercizio.