Image to PDF

Your files never leave this device. All processing happens in your browser — it even works offline. No uploads, no accounts, no file-size games.

Methodology & sources

Why "no quality loss" is literally true here

JPEG is lossy by design: its DCT quantization step throws away detail on every single encode (that's specified in ITU-T T.81, the JPEG standard itself). Open a JPEG, edit it, and save it as a JPEG again, and you don't get your original detail back — you get a second generation of loss stacked on the first. Many "convert JPG to PDF" tools do exactly that without telling you: they decode your image and re-encode it into the PDF, quietly applying that extra round of compression.

PDF doesn't require that step. The format's image XObjects (defined in ISO 32000) can carry a JPEG's already-compressed data unchanged — no decode, no re-encode. This tool embeds your JPG byte-for-byte. The PDF page shows exactly the file you selected, and the resulting PDF is barely larger than the images themselves, because nothing was recompressed into it.

What happens to PNG, WebP, GIF and BMP

PNG embeds directly and losslessly too — PDF supports PNG-style compression natively, so a PNG goes in unchanged, same as a JPEG.

WebP, GIF and BMP aren't PDF-native formats, so they take a different path: the browser decodes the image, and the tool re-encodes those decoded pixels as PNG before embedding. PNG compression is lossless, so the pixels that land in your PDF are identical to the pixels in your original file — for an animated GIF, that means the first frame.

One honest nuance: lossless doesn't always mean small. A photographic WebP re-encoded as PNG can end up noticeably larger, because PNG simply doesn't compress photos as efficiently as a lossy format does. You're trading file size for a guarantee that nothing was thrown away.

Page size follows the image

Each image becomes its own page, sized exactly to the image's pixel dimensions — nothing is cropped, padded to a standard paper size, or resampled. One image pixel maps to one PDF unit. The order of the pages is yours to set: use the file list's arrows to move images up or down before you convert.

No upload, verifiable

Same model as the other PDF tools on this site: the browser's File API reads your images locally, pdf-lib assembles the PDF inside the tab's memory, and the result goes straight to your downloads folder. No server ever receives your photos. Verify it yourself — open your browser's network inspector while converting and you'll see no upload, or switch your connection off entirely and convert anyway. It still works, because the operation never needed the internet.

The honest limitations

HEIC — the default format on recent iPhones — isn't supported yet, because browsers can't decode it natively; set your camera to "Most Compatible" so it saves JPGs, or convert the file first. Animated GIFs contribute only their first frame. There are no compression options here: this tool preserves what you give it, it doesn't optimize it — if you need a smaller PDF from a batch of huge photos, shrink the images first. And because everything runs in your device's memory, that memory is the practical ceiling on how large a batch you can convert at once.

Sources

  1. ITU-T / ISO-IEC JTC1. (1992). Recommendation T.81: Digital compression and coding of continuous-tone still images (JPEG) . International Telecommunication Union. The JPEG standard — the lossy DCT compression this tool deliberately never re-applies.
  2. ISO/TC 171/SC 2. (2020). ISO 32000-2:2020 — Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization. The PDF specification — image XObjects let a PDF carry JPEG and PNG data in their original encoding.
  3. W3C. (2003). Portable Network Graphics (PNG) Specification (Second Edition) . W3C Recommendation. The lossless format used both for direct embedding and as the transcode target for WebP, GIF and BMP input.
How it works
Each image becomes one PDF page sized exactly to the image, so nothing is cropped or scaled. JPGs and PNGs are embedded as-is — the PDF stores the original data, so there is zero quality loss. WebP, GIF and BMP images are losslessly converted to PNG in your browser first (for GIFs, the first frame). Use the arrows in the file list to set the page order. Everything runs in your browser; your photos never leave your device.

FAQ

Are my photos uploaded anywhere?
No. The PDF is assembled in your browser's memory and saved directly to your device. Load the page, go offline, and it still works — there is no server involved.
Is image quality reduced?
No. The original JPG/PNG data is embedded into the PDF byte-for-byte, not recompressed. What you see in the PDF is exactly your original image.
What formats are supported?
JPG, PNG, WebP, GIF (first frame) and BMP. HEIC (iPhone default) isn't supported yet — set your iPhone camera to 'Most Compatible' or convert HEIC to JPG first.