1. A method for decoding an encoded data symbol, the method comprising: providing a light source comprising a plurality of individually-controllable lighting elements for providing low angle dark field illumination; activating an image sensor for detecting image data reflected from an encoded data symbol when the encoded data symbol is illuminated by the light source; and providing a controller connected to each of the individually-controllable lighting elements, the controller being programmed for: selectively activating the individually-controllable lighting elements to vary the direction of the low angle dark field illumination provided by the light source; and processing the image data detected by the image.