PDF Image Extraction Is Actually a Full-Page Screenshot, Not True Extraction
The name "PDF image extraction" makes it easy to expect a tool that pulls out the exact photo or logo file embedded inside a PDF, unchanged. But most browser-based PDF image extraction tools, in practice, don't work that way. They photograph the entire page and export it as one image file — they don't pick out the individual image objects buried inside the PDF. Not understanding this distinction leads to confusion like "I just wanted this one photo — why did I get the whole page?"
1. Two completely different approaches
Behind the phrase "get the images out of a PDF" actually hide two entirely different techniques.
- Embedded image object extraction: This walks the object graph inside the PDF file, finds Image XObjects, determines which filter each one is compressed with (DCTDecode/JPEG, FlateDecode, JBIG2, CCITT Fax, etc.), decompresses it, and pulls out image data that's close to the original. The implementation is complex, but it preserves almost all of the original image's resolution and quality.
- Render the page, then export: This draws the entire page — a mix of text, vector graphics, and images — onto a canvas exactly as it would appear on screen, then saves that whole canvas as a single image file. Much simpler to implement, but the result is "a screenshot of that page," not the individual image objects.
2. What this tool actually does
Checking the actual source code, this tool calculates the viewport with PDF.js's page.getViewport({scale}), renders the entire page onto a canvas with page.render({canvasContext, viewport}), and then pulls out a PNG with canvas.toDataURL('image/png'). In other words, this is clearly the second approach (page rendering). The tool's own FAQ states this explicitly too: "Can I extract only the images inside a PDF? No. This renders the entire page as a single PNG." Even if a PDF has just one small photo embedded in it, the result isn't a cropped-out copy of just that photo — it's a full-page image that includes the text and layout too.
3. Quality is determined by "rendering scale," not "original resolution"
With the page-rendering approach, the actual quality of the result is determined by the scale you set for rendering, regardless of the resolution the original photo was embedded at. However high-resolution the original photo was, rendering at a low scale will blur it out; conversely, even if the original was low-resolution, raising the scale will sharpen other elements on the page (text, vector lines) without adding any real detail to the original photo itself. The quality ceiling of the result is ultimately set by "rendering scale," not "the true resolution of the embedded original image."
4. 1pt = 1/72 inch: the relationship between scale and DPI
The PDF internal coordinate system defines page size in points (pt), and the PDF standard fixes 1pt = 1/72 inch. So to render a page onto a pixel-based canvas, a pt→px conversion scale is required. A scale of 1× corresponds to 72 DPI, 2× to 144 DPI, and 3× to 216 DPI. This is also why the tool uses the term "scale" instead of "resolution (DPI)" — internally, everything is always calculated as a multiple of the 72pt baseline.
5. If you need the true embedded images
If you need to pull out exactly the photo or logo object embedded in a PDF, with no page background, this type of tool simply can't do that. You'd need a dedicated tool that parses the PDF's object streams directly, locates Image XObjects, and decodes their compression filters (for example, a desktop PDF editor's "extract images" feature, or a script using a library like pikepdf or PyMuPDF). This tool, by contrast, is well suited for cases where you want to save the page as a whole, like a screenshot — pasting into a presentation, posting a capture to a blog or social media, or previewing content in an environment that can't open PDFs.
Frequently Asked Questions
Q. Can this tool extract just the photos inside a PDF?
A. No. This tool renders the entire page (text + vectors + images) as a single PNG, so it can't isolate individual image objects within the page. The result is always in the form of a full-page screenshot.
Q. Does raising the scale to 3× also improve the quality of the original photo?
A. The rendering resolution of the page itself increases, but if the originally embedded photo was low-resolution, the actual detail in that photo's region doesn't increase. Scale only determines the pixel density of the rendering canvas — it doesn't restore the original image data to ultra-high quality.
Q. Why is 1pt specifically = 1/72 inch?
A. PostScript, the predecessor to PDF, standardized on the traditional letterpress printing point (a unit close to 1/72 inch) long used in the printing industry, and PDF inherited that convention. That's why the base unit of the PDF coordinate system is still fixed at 1pt = 1/72 inch today.
Q. Is my file sent to a server?
A. No. PDF.js performs the rendering directly in the browser using the Canvas API, so the PDF file is never sent to an external server.