docs: public static void main(String[] pArgs) throws IOException {
          ThumbsDBImageReader reader = new ThumbsDBImageReader();
          reader.setInput(ImageIO.createImageInputStream(new File(pArgs[0])));
  //        reader.setLoadEagerly(true);
  
          if (pArgs.length > 1) {
              long start = System.currentTimeMillis();
              reader.init();
              for (Catalog.CatalogItem item : reader.catalog) {
                  reader.read(item.getName(), null);
              }
              long end = System.currentTimeMillis();
              System.out.println("Time: " + (end - start) + " ms");
          }
          else {
              JFrame frame = createWindow(pArgs[0]);
              JPanel panel = new JPanel();
              panel.setBackground(Color.WHITE);
              panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
  
              long start = System.currentTimeMillis();
              reader.init();
              for (Catalog.CatalogItem item : reader.catalog) {
                  addImage(panel, reader, reader.catalog.getIndex(item.getName()), item.getName());
              }
              long end = System.currentTimeMillis();
              System.out.println("Time: " + (end - start) + " ms");
  
              frame.getContentPane().add(new JScrollPane(panel));
              frame.pack();
              frame.setVisible(true);
          }
      }