Skip to main content
FormatDrop
How-To Guide

How to Extract Images from a PDF (Free, Full Quality)

When you need an image out of a PDF, screenshotting it is the wrong move — you'll get whatever resolution your screen happens to be showing, with JPEG compression baked into the screenshot tool, and you'll lose any color profile or transparency the source had. Proper image extraction pulls the original binary stream out of the PDF: a 4000×3000 photo embedded in the PDF comes out as a 4000×3000 file, byte-for-byte identical to what was put in. This guide covers every PDF image extraction method (online, command line, Python, Preview, Acrobat) plus the difference between 'extract images' (pull out the embedded files) and 'convert PDF to images' (render each page as a picture) — they sound similar but solve completely different problems and produce wildly different results.

Quick answer

For full-quality bulk extraction, the fastest method is `pdfimages -all input.pdf prefix-` (install: `brew install poppler` on Mac, `apt install poppler-utils` on Linux). The `-all` flag keeps each image in its original format (JPEG stays JPEG, PNG stays PNG, no re-encoding). For one-off extraction without installing anything, use the browser-based tool that runs locally in WebAssembly. Don't confuse 'extract images' with 'convert PDF to JPG' — different operations.

Method 1: Convert PDF to Images online (free, in your browser)

  1. 1

    Open the FormatDrop PDF image extractor

    Open formatdrop.com/pdf-converter in any modern browser. The extractor runs locally — your PDF stays on your device, no server upload. Works on Mac, Windows, Linux, iPhone, and Android with no install.

    Go to converter
  2. 2

    Upload your PDF file

    Drop your PDF onto the upload area. The extractor parses the PDF's object structure and lists every embedded image: photos, diagrams, charts, logos, page backgrounds. You'll see thumbnails of each before deciding what to download.

  3. 3

    Select images and format

    Tick the images you want, or click 'Select all'. Choose 'Original format' to keep each image in its native encoding (JPEG, PNG, JBIG2, etc.) — best for quality preservation. Or 'Convert all to PNG' if you need a uniform format for downstream processing.

  4. 4

    Download as ZIP or individually

    Single images download directly. Multiple images package as a ZIP archive named by the source PDF. Each image keeps its original filename pattern (image-001.jpg, image-002.png, etc.). Open in any image viewer or editor.

Method 2Command line (pdfimages)

Method 2: Extract images with pdfimages (best for bulk and full quality)

pdfimages is the standard command-line image extractor from poppler-utils. Free, fast, preserves original encoding. The right tool when you have many PDFs to process or need bit-exact preservation of embedded images.

  1. Install. Mac: `brew install poppler`. Linux: `apt install poppler-utils` or `dnf install poppler-utils`. Windows: download from poppler.freedesktop.org or use WSL.
  2. Extract all images, preserving original format: `pdfimages -all input.pdf prefix-`. Output: prefix-000.jpg, prefix-001.png, prefix-002.jpg, etc. — each in its native format.
  3. Force PNG output (re-encodes JPEG sources): `pdfimages -png input.pdf prefix-`.
  4. Force JPEG output: `pdfimages -j input.pdf prefix-`.
  5. Show what's in the PDF without extracting: `pdfimages -list input.pdf` — produces a table of every image with size, color depth, and embedded format. Useful for choosing what to extract.
  6. Extract only from specific pages: `pdfimages -all -f 5 -l 10 input.pdf prefix-` — pages 5 through 10.
  7. Batch extract from every PDF in a folder: `for f in *.pdf; do mkdir "${f%.pdf}-images"; pdfimages -all "$f" "${f%.pdf}-images/img-"; done`.

Note: pdfimages preserves the original binary streams — no re-encoding, no quality loss. A 12-megapixel JPEG embedded in the PDF comes out as the same 12-megapixel JPEG. For pixel-perfect archival of source images, this is the gold standard.

Method 3Python (PyMuPDF)

Method 3: Extract images with Python and PyMuPDF (best for programmatic control)

PyMuPDF (also called fitz) is a Python wrapper around MuPDF. Excellent for scripted workflows, integration with other tools, and selective extraction based on size, format, or position.

  1. Install: `pip install PyMuPDF` (or `pip install pymupdf` for newer versions).
  2. Basic extraction: `import fitz; doc = fitz.open('input.pdf'); for page in doc: for img in page.get_images(): xref = img[0]; pix = fitz.Pixmap(doc, xref); pix.save(f'image-{xref}.png')`.
  3. Filter by size — only extract images >100KB: `if pix.size > 100000: pix.save(f'image-{xref}.png')`.
  4. Extract with original format: `extracted = doc.extract_image(xref); ext = extracted['ext']; open(f'image-{xref}.{ext}','wb').write(extracted['image'])`.
  5. Process every PDF in a folder: combine with `glob.glob('*.pdf')` and a loop. Easy to integrate into ETL pipelines.

Note: PyMuPDF is the most flexible option — you can filter, transform, or process extracted images programmatically. Slower than pdfimages but vastly more capable. For one-off extraction, pdfimages wins on simplicity.

Method 4macOS Preview

Method 4: Extract a single image using Preview (easy, no install)

Preview can extract individual images from PDFs by selecting and copying. Best for one-off needs where you don't want to install anything.

  1. Open the PDF in Preview (double-click).
  2. Tools → Show Inspector (⌘I). The Document Properties pane shows. Click the second tab (the document tab) for image details.
  3. For visual selection: Tools → Rectangular Selection (or press R). Drag a box around the image you want to extract.
  4. Edit → Copy (⌘C). Open Preview's File menu → New from Clipboard (⌘N). Save the new image as JPG, PNG, TIFF, or other format via File → Export.
  5. For PDFs where you need many images, Preview is impractical — switch to pdfimages or PyMuPDF.

Note: Preview's selection-based extraction re-renders the image at screen resolution, so you don't get the original embedded photo. For pixel-perfect extraction, use pdfimages or PyMuPDF instead. Preview is convenient for one image; awkward for many.

Method 5Adobe Acrobat Pro

Method 5: Adobe Acrobat Pro extraction (paid, but easiest GUI)

Acrobat Pro has a polished UI for image extraction with batch support. Costs money (~$15/month) but if you already have Adobe Creative Cloud, it's the easiest GUI approach.

  1. Open the PDF in Acrobat Pro.
  2. Tools → Export PDF → Image → choose JPEG, PNG, or TIFF.
  3. Set 'Export all images' option. Click Export.
  4. Acrobat saves every embedded image to a folder of your choice.
  5. For more control, use the Tools → Edit PDF interface to right-click individual images → Save Image As.

Note: Acrobat Pro is the easiest option if you already pay for it. For one-off use, Preview or pdfimages is free and fine. Acrobat's main advantage is GUI batch export with good defaults.

When you need to convert PDF to Images

  • 1

    Recovering original photos from a designer's PDF deliverable

    Your designer sent a PDF mockup. You want the source photos to use elsewhere. pdfimages -all extracts every embedded image at original quality — typically the same JPEGs the designer dropped into Illustrator or InDesign.

  • 2

    Building a dataset for ML or analysis from a PDF report

    Annual reports, scientific papers, and technical documents often have charts and diagrams as embedded images. Extracting them programmatically (with PyMuPDF) feeds an image classifier, archive, or visualization pipeline.

  • 3

    Recreating a print layout in a different tool

    Need to redesign a PDF brochure in Figma or Canva? Extract the embedded images first, then drop them into the new tool. Beats the pixelated 'paste from PDF' workflow.

  • 4

    Extracting product photos from an e-commerce PDF catalog

    Some suppliers send catalogs as PDF. Bulk-extract all product photos with pdfimages, run them through a script that pulls product names from filenames, end up with a usable image library.

  • 5

    Pulling diagrams out of a textbook or technical manual

    A textbook PDF has 200 figures you want to study or reuse. Don't screenshot each one — pdfimages extracts all in seconds at full resolution. For copyright-sensitive use, this is for personal study; redistribution requires permission.

Troubleshooting common PDF to Images problems

pdfimages outputs only one big image per page (instead of individual images)

Your PDF was created from page-flattened scans or rendered exports — each page is one big image, not separate embedded images. There's no way to extract sub-regions because the source PDF doesn't have them as separate objects. Solutions: (1) If you just want each page as an image, use `pdftoppm -jpeg -r 300 input.pdf page` instead, which renders pages as full-page JPGs. (2) For sub-region extraction, use Acrobat Pro's image-editing tools to select and crop. (3) If the page is a single embedded image, extract it whole and crop in Photoshop afterward.

Extracted images are smaller than expected (low resolution)

Check the original PDF — the embedded images may genuinely be low-resolution. Use `pdfimages -list input.pdf` to see the actual width × height of every embedded image. If the source PDF was made from web-resolution images (e.g., 800×600), you can't extract higher resolution than that. To get higher quality, find the original source images outside the PDF.

Many duplicate images extracted (every page header, footer, watermark)

Your PDF reuses the same image across pages (logo on every page, etc.). pdfimages extracts each instance — so you get the same logo 50 times. Two solutions: (1) Use `fdupes -d ./output-dir` after extraction to find and remove duplicates by content hash. (2) In PyMuPDF, track xrefs (image references) — same xref means same image; only extract each xref once.

Images come out with strange color shifts (oversaturated, too dark, etc.)

PDFs can use various color spaces (RGB, CMYK, calibrated profiles). If the embedded image is CMYK and you extract to JPEG (which is RGB), you may see color shifts during conversion. With pdfimages, use `-all` to keep the original encoding (CMYK JPEGs stay CMYK). With PyMuPDF, check Pixmap colorspace and convert with `pix = fitz.Pixmap(fitz.csRGB, pix)` if needed.

Images are inline with text — extraction misses them

Some PDFs have images embedded inline within text streams (rare but happens). Standard tools may not detect them. Try mutool: `mutool extract input.pdf` extracts all objects including inline images. The output is a folder of `image-NNNN.png` files plus other PDF objects.

Extraction works but I want a specific image from a specific page

Use pdfimages with page filter: `pdfimages -all -f 5 -l 5 input.pdf prefix-` extracts only from page 5. Then pick the right one. Or use PyMuPDF: `for img in doc[5].get_images()` (page 5, 0-indexed). For visual selection without the command line, use Preview or Acrobat Pro and screenshot/copy the specific image.

PDF is password-protected — can't extract anything

You need the password. With pdfimages: `pdfimages -opw owner-password -all input.pdf prefix-` for owner password, `-upw user-password` for user password. Without the password, no tool can extract content. If the PDF only has a 'permission' lock (not a content lock), some tools (qpdf, gs) can strip the permission lock with the user password.

Why convert PDF to Images?

Extracting images from PDFs sounds simple, and with the right tool it is. The key insight is that PDFs store images as separate objects (XObjects, in the PDF spec) — the conversion software just pulls those objects out. The result is bit-identical to whatever was put in: a 24-megapixel photo embedded in the PDF comes out as the same 24-megapixel photo.

But three traps catch people. First, screenshot-based 'extraction' isn't extraction — it's re-rendering at screen resolution, which throws away most of the original quality. Always use a real extractor (pdfimages, PyMuPDF, Acrobat).

Second, scanned PDFs and image-only PDFs contain one big image per page, not multiple separate images. Extracting gets you page-scans, not individual photos. If you want pieces of a flat scan, you need to crop after extraction.

Third, vector graphics aren't 'images' in the PDF sense. A diagram made of paths and shapes won't extract with pdfimages — you need pdf2svg or a vector-aware extractor.

Get the tool right and the rest is mechanical: pdfimages -all for bulk command-line work, PyMuPDF for scripted/programmatic flows, browser-based extraction for one-offs without installs, Acrobat Pro for polished GUI batch jobs. Every method preserves original quality if you avoid screenshot-style 'extraction'.

Your files never leave your device

FormatDrop runs the conversion engine entirely inside your browser using WebAssembly. No file upload. No server. Nothing stored. You can verify this by opening DevTools → Network tab and watching: zero upload requests.

Frequently asked questions

What's the difference between extracting images and converting PDF to JPG?
Extracting images pulls the embedded image files out of the PDF — a 4MP photo embedded in the PDF comes out as the same 4MP photo. Converting PDF to JPG renders each PDF page as one JPG image — including text, layout, multiple images, all flattened into one picture per page. They sound similar but solve different problems. For source-image recovery, extract. For thumbnail-of-each-page, convert.
Will extracted images be at full resolution?
Yes, when using pdfimages or PyMuPDF — they pull the original embedded binary stream. A 4000×3000 photo embedded in the PDF comes out as 4000×3000 bytes-identical to the source. Preview and screenshot-based methods produce only screen-resolution copies, so use them only for one-off needs where quality doesn't matter.
Best free tool for extracting images from PDF?
pdfimages from poppler-utils. Free, fast, preserves original quality. Mac: `brew install poppler`. Linux: `apt install poppler-utils`. Windows: download from poppler.freedesktop.org. For programmatic workflows, PyMuPDF (Python) is also free and more flexible.
Can I extract images from a scanned PDF?
Sort of — scanned PDFs contain one big image per page (the scan itself), not multiple separate images. Extracting gets you the page-scans. If the original PDF was made from a scanner that produced separate images per region, you can extract them; most scanners produce flat per-page images. For text-from-scans, use OCR (see our convert-pdf-to-txt guide).
Why are some images in the PDF not getting extracted?
A few possibilities: (1) Vector graphics (drawings, charts made of paths) aren't 'images' to most tools — they're vector objects. Use pdf2svg to extract them. (2) Inline images (embedded directly in content streams, rare) need mutool extract. (3) Image masks (the alpha channel of transparent images) extract separately from the image itself — use `pdfimages -all` to get both.
How do I extract images from PDF on iPhone or iPad?
Use the FormatDrop browser tool in Safari — runs locally in WebAssembly, no upload. iOS doesn't have native PDF image extraction, and apps like 'PDF Converter' upload to servers. The browser-based local approach is the most private option on mobile.
Will extraction preserve transparency from PNG images?
Yes, with `pdfimages -all`. PNG with alpha channels embedded in PDFs preserve transparency through extraction. Verify with an image viewer that supports transparency (Preview, GIMP, Photoshop). PyMuPDF also preserves alpha when you extract with `extract_image()`.
Can I extract images from many PDFs at once?
Yes. With pdfimages: `for f in *.pdf; do mkdir "${f%.pdf}-images"; pdfimages -all "$f" "${f%.pdf}-images/img-"; done`. With PyMuPDF: loop with `glob.glob('*.pdf')` and process each. Acrobat Pro has a batch action for image export. The browser tool processes one PDF at a time but is convenient for occasional use.
Does extraction work on encrypted PDFs?
Only with the password. PDFs encrypt content streams, including image streams. pdfimages, PyMuPDF, mutool, and Acrobat all accept passwords as arguments. Without the password, extraction fails — that's the whole point of PDF encryption. If you genuinely own the PDF and lost the password, password-recovery tools exist but most are paid.
Convert PDF to Images Now — Free

No account. No upload. Works in any browser.