code: def pil_image(self, fill_value=None, compute=True):
          
          channels, mode = self.finalize(fill_value)
          res = channels.transpose('y', 'x', 'bands')
          img = dask.delayed(PILImage.fromarray)(np.squeeze(res.data), mode)
          if compute:
              img = img.compute()
          return img
docs: Return a PIL image from the current image.
  
          Args:
              fill_value (int or float): Value to use for NaN null values.
                  See :meth:`~trollimage.xrimage.XRImage.finalize` for more
                  info.
              compute (bool): Whether to return a fully computed PIL.Image
                  object (True) or return a dask Delayed object representing
                  the Image (False). This is True by default.