Внутри zip есть метод forEach, почти такой же как у массива.
zip.forEach обходит все файлы внутри архива, см. пример тут:
https://stuk.github.io/jszip/documentation/example...
(в колбэке для forEach второй параметр - zipEntry, работаем с ним)
обходя файлы, при обнаружении картинки, её надо прочитать как блоб, этот блоб превратить в url, который передать в картинку. По идее, в архиве может оказаться более одной картинки - тут либо выставляешь флажок о том, что картинка уже найдена и далее с картинками не возишься, либо каждую картинку рисуешь отдельно. Это неважно. Суть вот в чем:
// если в zipEntry - картинка
zipEntry.async('blob').then((blob) => {
const url = URL.createObjectURL(blob); // создаем "урл" для блоба
img.src = url; // ставим в картинку
setTimeout(() => {
URL.revokeObjectURL(url); // удаляем, чтобы не было утечек памяти
}, 100);
})
https://developer.mozilla.org/ru/docs/Web/API/URL/...