docs: def mask(self, dims=None, base=None, fill='deeppink', stroke='black', background=None, 
               cmap=None, cmap_stroke=None, value=None):
          """
          Create a mask image with colored regions.
  
          Parameters
          ----------
          dims : tuple, optional, default = None
              Dimensions of embedding image,
              will be ignored if background image is provided.
  
          base : array-like, optional, default = None
              Array to use as base image, can be 2d (BW) or 3d (RGB).
  
          fill : str or array-like, optional, default = 'pink'
              String color specifier, or RGB values,
              or a list of either.
  
          stroke : str or array-like, optional, default = None
              String color specifier, or RGB values,
              or a list of either.
  
          background : str or array-like, optional, default = None
              String color specifier, or RGB values.
  
          cmap : str or colormap, optional, deafult = None
              String specifier for colormap, or colormap. Will control
              both fill and stroke. Use cmap_stroke to
              set stroke independently.
  
          cmap_stroke : str or colormap, optional, deafult = None
              String specifier for colormap, or colormap, for stroke only.
  
          value : array-like, optional, default = None
              Value per region for use with colormap.
              If None and cmap is specified, will use the range
              from 0 to the number of regions.
          """
          if (cmap is not None or cmap_stroke is not None) and value is None:
              value = arange(self.count)
          background = getcolor(background)
          stroke = getcolors(stroke, self.count, cmap_stroke, value)
          fill = getcolors(fill, self.count, cmap, value)
  
          minbound = asarray([b[0:2] for b in self.bbox]).min(axis=0)
          maxbound = asarray([b[2:] for b in self.bbox]).max(axis=0)
          extent = maxbound - minbound + 1
  
          if dims is None and base is None:
              regions = [one(r.coordinates - minbound) for r in self.regions]
          else:
              regions = self.regions
  
          base = getbase(base=base, dims=dims, extent=extent, background=background)
  
          for i, r in enumerate(regions):
              f = fill[i] if fill is not None else None
              s = stroke[i] if stroke is not None else None
              base = r.mask(base=base, fill=f, stroke=s)
  
          return base