code: def list_images(img_dpath_, ignore_list=[], recursive=False, fullpath=False,
                  full=None, sort=True):
      r
      if full is not None:
          fullpath = fullpath or full
      img_dpath_ = util_str.ensure_unicode(img_dpath_)
      img_dpath = realpath(img_dpath_)
      ignore_set = set(ignore_list)
      gname_list_ = []
      assertpath(img_dpath)
      true_imgpath = truepath(img_dpath)
      for root, dlist, flist in os.walk(true_imgpath):
          root = util_str.ensure_unicode(root)
          rel_dpath = relpath(root, img_dpath)
          if any([dname in ignore_set for dname in dirsplit(rel_dpath)]):
              continue
          for fname in iter(flist):
              fname = util_str.ensure_unicode(fname)
              gname = join(rel_dpath, fname).replace('\\', '/')
              if gname.startswith('./'):
                  gname = gname[2:]
              if fpath_has_imgext(gname):
                  if gname in ignore_set:
                      continue
                  if fullpath:
                      gpath = join(img_dpath, gname)
                      gname_list_.append(gpath)
                  else:
                      gname_list_.append(gname)
          if not recursive:
              break
      if sort:
          gname_list = sorted(gname_list_)
      return gname_list