code: def get_jp2_bit_depth(stream):
      
      stream.seek(0)
      while True:
          read_buffer = stream.read(8)
          if len(read_buffer) < 8:
              raise ValueError('Image Header Box not found in Jpeg2000 file')
  
          _, box_id = struct.unpack('>I4s', read_buffer)
  
          if box_id == b'ihdr':
              read_buffer = stream.read(14)
              params = struct.unpack('>IIHBBBB', read_buffer)
              return (params[3] & 0x7f) + 1
docs: Reads bit encoding depth of jpeg2000 file in binary stream format
  
      :param stream: binary stream format
      :type stream: Binary I/O (e.g. io.BytesIO, io.BufferedReader, ...)
      :return: bit depth
      :rtype: int