Extracting images from a PDF document means pulling out the original picture files that were stored inside the file — not taking a screenshot of a rendered page. A PDF can hold image objects in several formats, and a browser-based extractor walks the document's internal structure, finds the embedded JPG or simple RGB/grayscale picture, and hands you that file as a JPG or PNG you can save locally. The PDF never leaves your machine during the scan, and the original picture bytes are preserved where the format allows it. To recover the actual asset a designer placed in a document — a logo, a product photo, a scanned signature, a chart graphic — you want extraction, not page conversion. Page conversion takes a flat picture of everything visible on the page, including text and vector art, and re-encodes it at a chosen quality. Extraction keeps the embedded image bytes intact where it can, so a JPG downloaded from the tool is the same JPG the document was built with. The rest of this guide shows when extraction is the right tool, how to run it on a local PDF, and what to expect when an image cannot be safely exported.

What Extracting an Image From a PDF Actually Means
A PDF file is built from objects. Text, fonts, vector paths, and pictures are all separate objects linked by a table of contents at the end of the file. When a designer drops a photograph or a logo into a layout, the picture is stored as an image XObject — a discrete block of bytes tagged with a width, a height, a color space, and a filter name that tells the reader how to decode the bytes. Extracting that picture means finding the XObject, reading its dimensions, decoding the bytes according to the documented filter, and writing the result back out as a standalone JPG or PNG file.
This is fundamentally different from opening the page and pressing Print Screen. A page snapshot is a rasterization of whatever the rendering engine draws at a given resolution: text, vector curves, line drawings, annotations, and the embedded picture all squashed into one bitmap. A snapshot also goes through a quality slider, so a stored JPG can come out fuzzier or blockier than the original. Extraction sidesteps that by going straight to the stored picture. The trade-off is that the tool can only recover picture objects that match what it knows how to decode safely; anything it does not recognize is skipped rather than mangled.
How to Extract Images From a PDF Document in Your Browser
The Extract Images from PDF tool runs the whole job in the current browser tab. There is nothing to install and the document does not leave your device. Follow these steps to pull the supported picture objects out of a single PDF file.
- Open Extract Images from PDF in your browser tab.
- Choose one local PDF from your computer — the tool accepts a single file up to 25 MB.
- Click Extract images to start scanning the file for embedded image objects.
- Wait for the scan to finish. The tool reports the format and the pixel dimensions for every image it recognizes.
- Download the JPG or PNG files you need. Each supported picture receives its own download link; the original PDF is not modified.
The download links are temporary. They are released as soon as you pick another file or close the tool, so save the files you want to keep before navigating away. The tool never claims the source document is trustworthy and never asks for a password, so a protected or damaged PDF will simply fail the scan rather than silently produce a broken image.
What the Tool Can Recover From a PDF
Not every embedded picture is recoverable. The extractor is strict about which combinations of color space, bit depth, filter, and mask it will decode, because guessing at a missing parameter usually produces a file with the wrong colors or the wrong content. The two cases it handles cleanly cover most everyday photos and scans.
| Stored as | Encoding details | What you get | Notes |
|---|---|---|---|
| DCTDecode | JPEG stream inside the PDF | Original JPG bytes | The stored payload is exported as-is; no recompression. |
| FlateDecode | 8-bit DeviceRGB, no mask, no DecodeParms | PNG | Inflated locally, painted, and encoded to PNG on a canvas. |
| FlateDecode | 8-bit DeviceGray, no mask, no DecodeParms | PNG | Same path as RGB but grayscale pixels. |
| JPXDecode, JBIG2, LZW, indexed, CMYK, soft masks, image masks, predictor chains | More complex encodings | Skipped | The skip is reported; the file is not silently mis-decoded. |
The reason DCTDecode can be exported as a JPG is that the bytes already are a valid JPEG file — the PDF wrapper just stores them in a tagged object. FlateDecode, by contrast, is a general-purpose compressed byte stream. A raw Flate stream is not a standalone image file that ordinary apps can open, so the browser inflates the pixel buffer and re-encodes it to PNG. PNG is chosen because it is lossless, which means the inflated pixels reach your disk unchanged. You can read more about the decompression step in the MDN DecompressionStream documentation.
Why Some Image Objects Are Skipped Instead of Decoded
PDFs are allowed to use a wide variety of image-storage tricks, and many of them are not safe to just decode without knowing what the original colors looked like. A soft mask layers transparency on top of the picture. An image mask uses the alpha channel to cut shapes out of the background. JPXDecode uses JPEG 2000, which is a different codec entirely. JBIG2 is for bi-level scans. Indexed color spaces point to a separate palette table that also has to be present. Chained filters combine two compression passes. If the tool tried to decode any of those as if it were a plain RGB Flate stream, you would get a picture with the wrong aspect ratio, the wrong gamma, or scrambled pixels.
The tool enforces a set of safety budgets before it allocates a large output buffer, and a skip is the safe outcome when those budgets are exceeded. The PDF itself is limited to 25 MB, the candidate count is capped, and per-picture limits include a maximum dimension of 12,000 pixels on any side and a maximum of 40 megapixels per image. The total pixel count across all images is capped at 100 megapixels, and the decoded Flate byte stream is capped at 100 MB. A password-protected file, a malformed file, or a file that uses one of the unsupported encodings will simply not produce a download for that object.
A repeated indirect image reference is only inspected once. If the same picture is drawn on ten pages, it still counts as one stored asset — not ten separate downloads — so the results list stays clean. This is a small but useful detail: it tells you when the document reuses a logo or a header graphic instead of embedding a fresh copy on every page.
Extraction vs. Converting a Page to an Image
It helps to know when extraction is the right tool and when a full page conversion is. The two produce different files and serve different purposes, and using the wrong one usually ends with somebody asking why their text became a blurry picture.
| If you need… | Use | Why |
|---|---|---|
| The exact JPG that was placed in the PDF | Extract Images from PDF | Stored bytes are exported without re-rendering. |
| A simple RGB or grayscale photo that was not stored as JPG | Extract Images from PDF | Inflated locally and saved as PNG, no recompression. |
| Every page as a complete picture, including text and vector art | PDF to PNG or PDF to JPG | Page conversion renders the whole visible page at your chosen scale. |
| A clean logo or signature, not a screenshot of the page around it | Extract Images from PDF | You get the embedded asset instead of a rasterized page. |
For a worked illustration, imagine a two-page report where the first page contains a 1,600-by-1,200 JPG photograph at 72 DPI and the second page contains a CMYK logo wrapped in a soft mask. Extraction will hand you the photograph as a 1,600-by-1,200 JPG and will skip the logo with a clear message that the encoding is not supported. A page converter, on the other hand, will give you a picture of each page including the text columns and the page footer. Same document, two very different outputs.
Quick Checks After You Download
Once the scan is done and the files are on your disk, take a minute to confirm that what you downloaded matches what you expected to recover. Open the largest JPG first and check its pixel dimensions in your operating system file properties. A stored JPG exported without recompression should report the exact dimensions the PDF image dictionary declared. If the dimensions look right but the picture looks washed out, the PDF may have been authored with a tagged color space the tool did not normalize — open the source document and compare visually before relying on the file.
For PNGs produced from FlateDecode streams, the file should open in any image viewer without warnings. Compare the downloaded dimensions against what the tool reported, and visually check that no part of the picture is missing. A repeated indirect reference will only show up once in the results list, so if you expected to see a logo on three pages and you see it once, that is the design of the document, not a bug in the scan.
Keep the original PDF on hand until you have confirmed the downloads. The tool never modifies the file you upload, and it does not maintain any server-side copy — the temporary download links are released the moment you choose another file or close the tab, and the only way to redo the scan is to open the tool again with the same local document.
If the tool skipped several images, that is a signal that the PDF is using compression or color tricks the browser tool cannot safely decode on its own. A dedicated desktop application with full PDF imaging libraries can sometimes recover more, but it also needs to be installed and trusted with the file. For documents where a quick, local scan of the obvious pictures is enough — brochures, slide handouts, reports with a handful of photos — the browser path is usually the fastest way to get a usable asset.
If you're weighing options, How to Extract PDF Pages in Bluebeam Revu covers this in detail.