code: def read_bands(self, rlevel=0, layer=None, area=None, tile=None,
                     verbose=False, ignore_pclr_cmap_cdef=False):
          
          if version.openjpeg_version < '2.1.0':
              msg = ("You must have at least version 2.1.0 of OpenJPEG "
                     "installed before using this method.  Your version of "
                     "OpenJPEG is {version}.")
              msg = msg.format(version=version.openjpeg_version)
              raise IOError(msg)
  
          self.ignore_pclr_cmap_cdef = ignore_pclr_cmap_cdef
          self.layer = layer
          self._populate_dparams(rlevel, tile=tile, area=area)
          lst = self._read_openjp2_common()
          return lst
docs: Read a JPEG 2000 image.
  
          The only time you should use this method is when the image has
          different subsampling factors across components.  Otherwise you should
          use the read method.
  
          Parameters
          ----------
          layer : int, optional
              Number of quality layer to decode.
          rlevel : int, optional
              Factor by which to rlevel output resolution.
          area : tuple, optional
              Specifies decoding image area,
              (first_row, first_col, last_row, last_col)
          tile : int, optional
              Number of tile to decode.
          ignore_pclr_cmap_cdef : bool
              Whether or not to ignore the pclr, cmap, or cdef boxes during any
              color transformation.  Defaults to False.
          verbose : bool, optional
              Print informational messages produced by the OpenJPEG library.
  
          Returns
          -------
          list
              List of the individual image components.
  
          See also
          --------
          read : read JPEG 2000 image
  
          Examples
          --------
          >>> import glymur
          >>> jfile = glymur.data.nemo()
          >>> jp = glymur.Jp2k(jfile)
          >>> components_lst = jp.read_bands(rlevel=1)