How to extract images from an MHTML file without uploading it
Every "free" online MHTML tool you have used uploads your saved page to a company server, extracts it there, and — in several documented cases — keeps a copy or a live download link for a day, or limits free users to a few files a month. For pages you saved, were sent in confidence, or simply would not post publicly, that is an unnecessary risk. The safer approach is to extract the file where it already is: on your own device.
This tool does exactly that. When you drop an MHTML file here, your browser:
- Checks the file is really an MHTML saved page — by its magic bytes, not its name — so a JPEG renamed .mhtml is refused with a clear message, a ZIP renamed .mhtml is refused with a pointer at the Extract Images from CBR tool, a PDF renamed .mhtml is refused with a pointer at the Extract Images from PDF tool, a Word document, spreadsheet or PowerPoint file renamed .mhtml is refused with a pointer at the matching Office extractor, a plain HTML file is refused with instructions to re-save the page as a single file, and an EML email file is refused with an explanation that it is an email, not a saved page. A real MHTML file saved with the wrong extension still extracts, and both .mhtml and .mht files are read.
- Reads the saved page’s own structure and pulls the images in page order — the root HTML part lists each picture through its img src and srcset references, in document order, so the image at the top of the page comes before the one at the bottom even when the MIME parts list them the other way round, and every image is labelled with its original filename. Image parts nothing references are listed last as Unreferenced. The root HTML, stylesheets, scripts and fonts are skipped, and everything skipped is listed on the saved-page card.
- Hands you the originals — download one image and it keeps its original filename; download the saved page as a ZIP and every image is renamed image-01, image-02 and so on in page order. Nothing is re-encoded, rasterized or resized at any point: the bytes you download are the bytes that were stored in the saved page.
What makes this extractor different
Most pages that top the results for this search convert on a server, or handle one file at a time with no previews — instead of handing you the images themselves. The desktop options are installs, not browser tools. This page does the simpler job, and does it fully in the browser: no upload, no monthly cap, no account, no 5 MB limit, a batch of 20 saved pages, MHTML and MHT, page order with every image labelled by filename, unreferenced images labelled, original filenames on per-image downloads, sequential names in the ZIP, and a live network-request counter so you can verify the privacy claim yourself.
Honest limitations
Verbatim means verbatim — no quality recovery
JPEG throws away detail when it compresses, and extracting cannot put it back. But nothing is lost either: the source bytes download unchanged, in every format. There is no quality setting because there is nothing to re-encode.
Metadata stays in the files
Extraction copies the stored bytes, so EXIF and other metadata inside each image is kept — including location data, if the image has any. The saved page’s own HTML and stylesheets are skipped, and listed on the card, but the images themselves are untouched. Strip metadata yourself before sharing an image publicly.
EMF and WMF preview
EMF and WMF images are extracted as-is, exactly as stored. Most browsers cannot display them, so the page shows a note instead of a broken image in that case, with the format and size shown. The file itself still downloads byte-for-byte and opens in LibreOffice or any viewer that supports the format.
The saved page is not re-rendered
An MHTML file is a whole web page — HTML, styles and scripts as well as images — and this tool does not render it. Only embedded images come out, byte-for-byte; the page itself stays in the .mhtml file. To turn a whole page into an image, screenshot it or print it to PDF from the browser instead.
Plain HTML and EML files are refused
A plain HTML file has no multipart body and no embedded image parts, so there is nothing to extract — save the page again in Chrome or Edge with “Save page as → Webpage, Single File”. An EML file is an email message (message/rfc822), not a saved page — open it in your mail app instead.
No text, linked images or data: URIs
This tool pulls out images only: it does not extract the saved page’s text, it does not download pictures linked from the web (only embedded images have bytes inside the file), and it does not extract data: URIs as separate images — a data: URI is inline in the HTML itself, not a separate part. Images referenced only in CSS (background images) are styles, not <img> images, so they are not listed either.
Page order, when the saved page cooperates
Page order comes from the root HTML part’s img src and srcset references, in document order. If a saved page has no root HTML part, the page falls back to part order and says so on the card — the images still come out byte-for-byte.
Nested parts, one level deep
A MIME part that is itself a multipart message is unpacked once; deeper nesting is listed on the card as skipped. Chrome and Edge save pages flat, so nesting is rare in practice — a nested part is usually a forwarded message saved inside the page.