read from generic image source