'Returns an iterator that can be used to retrieve an image\'s
data along with the image metadata.
:param req: The WSGI/Webob Request object
:param id: The opaque image identifier
:raises HTTPNotFound: if image is not available to user'

def show(self, req, id):

    self._enforce(req, 'get_image')
    try:
        image_meta = self.get_active_image_meta_or_error(req, id)
    except HTTPNotFound:
        with excutils.save_and_reraise_exception():
            self._enforce(req, 'download_image')
    else:
        target = utils.create_mashup_dict(image_meta)
        self._enforce(req, 'download_image', target=target)
    self._enforce_read_protected_props(image_meta, req)
    if (image_meta.get('size') == 0):
        image_iterator = iter([])
    else:
        (image_iterator, size) = self._get_from_store(req.context, image_meta['location'])
        image_iterator = utils.cooperative_iter(image_iterator)
        image_meta['size'] = (size or image_meta['size'])
    image_meta = redact_loc(image_meta)
    return {'image_iterator': image_iterator, 'image_meta': image_meta}
