code: def pil(self, **params_to_override):
          
          from PIL.Image import fromarray
          nchans = self.num_channels()
  
          if nchans in [0, 1]:
              mode, arr = None, self(**params_to_override)
              arr = (255.0 / arr.max() * (arr - arr.min())).astype(np.uint8)
  
          elif nchans in [3,4]:
              mode = 'RGB' if nchans==3 else 'RGBA'
              arr = np.dstack(self.channels(**params_to_override).values()[1:])
              arr = (255.0*arr).astype(np.uint8)
  
          else:
              raise ValueError("Unsupported number of channels")
  
          return fromarray(arr, mode)
docs: Returns a PIL image for this pattern, overriding parameters if provided.