A more efficient way would be to work with bounding boxes, but if you need the pixel perfect precision, you'll need to access the image information, which you can do by calling texture.copyToImage() and then call image.getPixel(). But make sure you call copyToImage only once or only when the map changes, because it's a heavy operation.
Afterwards you'll have to apply the transformation of your player manually onto the image, to see whether he's over a dark or bright place.