Interactive Single Color LED Matrix
You can get ADCs that have multiple inputs and speak SPI, eg: http://cds.linear.com/docs/en/design-note/dn274f.pdf (randomly selected example, in general Linear are good for this sort of IC)

So, build a matrix of phototransistors. Put the ADC across the columns and energise a row. Read off a set of values.

(This solution may require investigating what the minimum response and sample time of the phototransistors is)