<!DOCTYPE HTML>
<html>
  <head>
    <title>uw.gifsicle</title>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
  </head>
 
  <body>
     <input style="zoom:2" type="file" id="input">
  <br>
  <div id="out"></div>
    <script type="module">
  import gifsicle from 'gifsicle.min.js';
  let input = document.querySelector("#input");
  input.addEventListener('change', function(e) {
    let files = Array.from(this.files);
    loadGif(files[0]);
  });
  function loadGif(intFiles) {
    gifsicle
      .run({
        input: [{
          file: intFiles,
          name: "1.gif"
        }],
        command: [`
            -e -U 
            --resize 100x_ 
            1.gif 
            -o /out/out2.gif
          `]
      })
      .then(async (outfiles) => {
        let out = document.querySelector("#out");
        out.innerHTML = "";
        out.insertAdjacentHTML(
          "beforeend",
          `<span><img src="${typeof intFiles ==='string'?intFiles:URL.createObjectURL(intFiles)}"></span><br/>`
        );
        outfiles.map((f, indx) => {
          let url = URL.createObjectURL(f);
          out.insertAdjacentHTML("beforeend", `<span><img src="${url}"></span>`);
        });
      });
  }
</script>
  </body>
</html>