Extract images from a PDF at high quality by exporting the document's embedded image objects directly rather than re-rendering the page. A PDF that displays crisp photographs, logos, or scanned graphics is normally storing those visuals as separate image streams inside the file, and the highest-quality copy you can obtain is the stream's stored payload. Extract Images from PDF does exactly that: it locates the image objects inside the file, exports the supported DCTDecode stream as the original JPEG bytes, and inflates simple FlateDecode DeviceRGB or DeviceGray streams to a PNG. Because the JPEG path never passes through a recompression step, the file you download is the same JPEG payload the PDF author embedded — same color data, same dimensions, no extra generation loss. Page-rendering tools, by contrast, redraw the entire page at a chosen DPI, which compresses text, vector artwork, and the embedded photo into a single raster image and inevitably loses something. Quality in PDF extraction is therefore a question of which stream the tool touches, not how high you push the output DPI.

Why Extraction Beats Page Rendering for Quality
Two operations are commonly confused when people talk about pulling a picture out of a PDF, and only one of them preserves the original quality. Extraction means reading the image objects that the PDF author placed in the document and writing those stored pixels back out as a standalone file. Page rendering means instructing the PDF viewer to paint the entire page — every glyph, every vector path, every image placement — onto a canvas at a chosen resolution and then saving that canvas. Both produce a picture, but the underlying pixel source is different.
Extraction is lossless for the supported cases because the tool hands back the same compressed stream the document was built from. Rendering is inherently lossy because the source has to be flattened and re-encoded through the renderer's JPEG or PNG encoder. A 3000-pixel-wide photograph stored as DCTDecode (the PDF name for a JPEG stream, as defined in the Adobe PDF Reference image dictionaries and filters) will arrive in the extracted output at its native resolution with the original JPEG quantization tables intact. The same photograph on a rendered canvas will be re-encoded through whatever compression the rendering tool applies, which can introduce new artifacts even at very high DPI.
For documents where the embedded image is the asset — a product photo, a logo, a chart, a scanned diagram — extraction is the correct operation. For documents where the visible page is the asset — a slide with mixed text, vectors, and images — PDF to PNG or PDF to JPG Converter is the right choice, because those tools produce a complete rasterized page rather than a single embedded object.
Pull High-Quality Images From a PDF in Three Steps
- Choose one local PDF up to 25 MB from your device. The tool reads it inside the current tab; the file is not uploaded to any server.
- Select Extract images to scan the bounded embedded image objects. The tool enumerates each candidate and classifies the stream — DCTDecode (JPEG), supported FlateDecode (DeviceRGB or DeviceGray), or unsupported.
- Review the listed format and dimensions for each supported image, then click its download link to save the JPG or PNG to your computer.
Each download link corresponds to one supported image object. A repeated indirect reference inside the PDF is only inspected once, so a single stored asset does not appear as a confusing set of duplicate downloads. After you choose another file or leave the tool, the temporary download URLs are released. Scanning, decoding, PNG encoding, and download creation all stay in the browser tab — the PDF never leaves your device.
What the Tool Actually Exports
The PDF specification lets authors store image data with several different filter and color-space combinations, and the tool handles each supported case explicitly rather than guessing. The implementation enumerates indirect image XObjects with pdf-lib, looks at the Filter and ColorSpace entries, and routes each object to the right output path.
| PDF stream type | What the tool does | Output format |
|---|---|---|
| DCTDecode (embedded JPEG) | Keeps the original compressed bytes | JPG, identical to the stored payload |
| FlateDecode, 8-bit DeviceRGB, no DecodeParms | Inflates the raw pixel stream in the browser, encodes on a local canvas | PNG |
| FlateDecode, 8-bit DeviceGray, no DecodeParms | Inflates and exports the grayscale pixels | PNG |
| JPX, JBIG2, LZW, indexed, CMYK, masks, predictors, filter chains | Skipped and reported as unsupported | None |
Two design choices drive the output format. First, the JPEG path treats the stored bytes as authoritative — there is no rendering and no recompression step, so the downloaded JPG is the document's stored image payload. Second, a raw FlateDecode stream is not a standalone image file that normal apps can open, so the tool inflates the bounded raw pixel data and re-encodes it as a PNG on a local canvas using the browser's DecompressionStream for the inflate step. A PNG is used because it is lossless, and the source pixels are already lossless, which preserves the quality the document was built with.
Limits That Protect the Output
The tool enforces hard limits before it allocates a large output buffer, and these limits exist to keep the in-browser decoding pipeline from running away with a pathological file. The same limits also protect quality, because they prevent the tool from attempting to decode an image whose dimensions or raw size would force a degraded or truncated result.
| Limit | Value |
|---|---|
| Maximum PDF size | 25 MB |
| Maximum image dimension (width or height) | 12,000 pixels |
| Maximum single image megapixels | 40 MP |
| Total megapixels across all extracted images | 100 MP |
| Maximum decoded FlateDecode bytes | 100 MB |
| Candidate image objects | Capped per document |
A PDF larger than 25 MB, an image wider than the dimension limit, or one that exceeds the per-image megapixel cap is rejected before a download is offered. The total pixel and decoded-byte caps catch multi-image documents where every individual image is reasonable but the aggregate would exhaust browser memory. A password-protected, malformed, or unusually complex PDF can still fail — the tool does not bypass encryption, repair a broken file, or validate a signature. None of these limits re-encode or downscale a downloaded file; they prevent the download from being attempted at all.
When an Image Is Skipped Instead of Exported
PDF image storage has many legitimate variations, and the tool deliberately treats unsupported cases as skips rather than guesses. An object using JPXDecode (JPEG 2000), JBIG2, LZW compression, an indexed palette, CMYK color, soft masks, image masks, predictors, or several filters chained together will not be exported, because decoding those with the wrong assumptions would return a damaged file or wrong colors. The tool reads the relevant PDFRawStream fields and simply reports the skip. If the image you wanted appears in that skipped list, the original PDF remains the authoritative copy. A different operation — such as rendering the page — will recover a visible representation, though at rendering quality rather than stored quality. Skipping is the honest answer for unsupported streams; producing a wrong-color output would be worse.
Comparing Extraction With Page Conversion
Use the table below to choose between the embedded-image tool and a page rasterizer. The right pick depends on whether the asset you need is an object the PDF stores or the visible page the PDF paints.
| What you need | Right tool | Quality behavior |
|---|---|---|
| A photograph, logo, scan, or graphic that was placed in the PDF | Extract Images from PDF | Stored bytes — DCTDecode preserved as JPG, simple FlateDecode exported as PNG |
| The complete visible page, including text and vector artwork | PDF to PNG or PDF to JPG Converter | Re-rendered raster at chosen scale; quality depends on output DPI and encoder settings |
| One quick visual of a specific page | A screenshot of the viewer | Captures the on-screen pixels; quality depends on viewer zoom level |
Keep the original PDF, inspect the downloaded dimensions and appearance against the source, and use the downloaded file only after you confirm it matches the asset you expected. Temporary download URLs are released when you choose another file or leave the tool.
If you're weighing options, Extract Pages From a Large PDF: Size and Page Limits covers this in detail.
If you're weighing options, Extract PDF Links Free, Unlimited, in Your Browser covers this in detail.