code: private int extract(Canceler canceler,
                          SpriteTiled level,
                          int tilesNumber,
                          Collection<ImageBuffer> tiles,
                          int checkedTiles)
      {
          final int horizontalTiles = level.getTilesHorizontal();
          final int verticalTiles = level.getTilesVertical();
          final ImageBuffer surface = level.getSurface();
  
          final int tw = level.getTileWidth();
          final int th = level.getTileHeight();
          int checked = checkedTiles;
          int oldPercent = 0;
          for (int v = 0; v < verticalTiles; v++)
          {
              for (int h = 0; h < horizontalTiles; h++)
              {
                  final int x = h * tw;
                  final int y = v * th;
                  if (IGNORED_COLOR_VALUE != surface.getRgb(x, y) && !isExtracted(level, x, y, tiles))
                  {
                      final ImageBuffer tile = extract(level, h + v * horizontalTiles);
                      tiles.add(tile);
                  }
                  checked++;
                  oldPercent = updateProgress(checked, tilesNumber, oldPercent, tiles);
                  if (canceler != null && canceler.isCanceled())
                  {
                      return -1;
                  }
              }
          }
          return checked;
      }
docs: Proceed the specified level rip.
  
  @param canceler The canceler reference (can be <code>null</code>).
  @param level The level rip.
  @param tilesNumber The total tiles number to extract.
  @param tiles The current extracted tiles.
  @param checkedTiles The last number of checked tiles.
  @return The current number of checked tiles, or -1 if canceled.
  @throws LionEngineException If an error occurred when proceeding the image.