Embedds admin in his post has perfectly written:
“From semiconductor physics we know that semiconductor junction when exposed to light becomes more conductive. So when LED cathode is connected to +5V and anode to 0V it simply charges as capacitor.Then program switches anode pin to high Z input and read its state. Depending on time taken pin to go from high to low is directly related to light intensity on diode that causes bigger photo current. ”
With this concept, Udo Klein wanted to squeeze something interesting out of his Blinkenlight Arduino shield. It has a 20 LEDs positioned in row. This 20 LEDs acts as a 20 pixel camera, whose output is seen on serial monitor where pixels are sent in text mode via USART.