code: def imdecode(str_img, clip_rect=(0, 0, 0, 0), out=None, index=0, channels=3, mean=None):
      
      # pylint: disable= no-member, protected-access, too-many-arguments
      if mean is None:
          mean = NDArray(_new_empty_handle())
      if out is None:
          return _internal._imdecode(mean, index,
                                     clip_rect[0],
                                     clip_rect[1],
                                     clip_rect[2],
                                     clip_rect[3],
                                     channels,
                                     len(str_img),
                                     str_img=str_img)
      else:
          return _internal._imdecode(mean, index,
                                     clip_rect[0],
                                     clip_rect[1],
                                     clip_rect[2],
                                     clip_rect[3],
                                     channels,
                                     len(str_img),
                                     str_img=str_img,
                                     out=out)
docs: DEPRECATED, use mx.img instead
  
      Parameters
      ----------
      str_img : str
          Binary image data
      clip_rect : iterable of 4 int
          Clip decoded image to rectangle (x0, y0, x1, y1).
      out : NDArray
          Output buffer. Can be 3 dimensional (c, h, w) or 4 dimensional (n, c, h, w).
      index : int
          Output decoded image to i-th slice of 4 dimensional buffer.
      channels : int
          Number of channels to output. Decode to grey scale when channels = 1.
      mean : NDArray
          Subtract mean from decode image before outputing.