code: def static_full_sizes(width, height, tilesize):
      
      # FIXME - Not sure what correct algorithm is for this, from
      # observation of Openseadragon it seems that one keeps halving
      # the pixel size of the full image until until both width and
      # height are less than the tile size. After that all subsequent
      # halving of the image size are used, all the way down to 1,1.
      # It seems that without these reduced size full-region images,
      # OpenSeadragon will not display any unzoomed image in small windows.
      #
      # I do not understand the algorithm that OpenSeadragon uses (or
      # know where it is in the code) to decide how small a version of
      # the complete image to request. It seems that there is a bug in
      # OpenSeadragon here because in some cases it requests images
      # of size 1,1 multiple times, which is anyway a useless image.
      for level in range(0, 20):
          factor = 2.0**level
          sw = int(width / factor + 0.5)
          sh = int(height / factor + 0.5)
          if (sw < tilesize and sh < tilesize):
              if (sw < 1 or sh < 1):
                  break
              yield([sw, sh])
docs: Generator for scaled-down full image sizes.
  
      Positional arguments:
      width -- width of full size image
      height -- height of full size image
      tilesize -- width and height of tiles
  
      Yields [sw,sh], the size for each full-region tile that is less than
      the tilesize. This includes tiles up to the full image size if that
      is smaller than the tilesize.