FreeToolio

Image to PDF

Turn PNG, JPG, WebP, HEIC, GIF, BMP or AVIF images into one PDF — up to 50 at a time, one page per image. The whole job runs in this tab, and nothing is uploaded.

Drop images here

or choose files · PNG, JPG, WebP, HEIC, GIF, BMP, AVIF · up to 50 at once · or paste with Ctrl + V

One page per image · format read from the file header, not the extension · no upload · no account · no watermark

Image to PDF: Turn Mixed Image Files Into One Document (No Upload)

Seven files of five different formats went into this tool as one batch: a PNG logo with a transparent background, a phone photo, a screenshot, a 12-frame GIF, an uncompressed BMP, a 16-bit PNG and a WebP that had been renamed to .png. They came out as seven pages, 398 KB, in one tab.

What the pages kept, and what they dropped on the way in, is the subject of this page.

Three source files on the left feed one page on the right. A PNG marked 68% transparent, a GIF marked 12 frames and a 16-bit PNG marked 1,024 levels all point at a single 9:16 page labelled 810 × 1,440 pt. The page's blank margin is labelled page colour 255, 255, 255, its picture area is labelled 1 frame of 12, and a grey ramp at its foot is labelled 8 bits per channel, 256 levels.
Three containers, one page format. The transparent PNG keeps its colours and loses its holes; the GIF keeps one frame of twelve; the 16-bit gradient arrives as 256 levels. The page is the same shape as the phone screenshot it was built from: 810 × 1,440 points.

How to make a PDF from images here

  1. Add the files. Drop them into the box above, or paste a screenshot with Ctrl + V. PNG, JPG, WebP, HEIC, GIF, BMP and AVIF all work, mixed in one batch, up to 50 files at once.
  2. Read the list. Every row shows the format read from the file's own header, plus what else the file carries: transparent pixels, extra frames, 16-bit samples.
  3. Set the page. Fit to image gives each picture a page of its own shape; A4 and US Letter place it on paper. Quality re-encodes, and Transparent areas decides what fills the gaps.
  4. Download. The card under the list shows the page count, the page geometry and the file size.

A page is a sheet, so its size is in inches

PDF does not store pages in pixels. A page is a rectangle measured in points, 72 to the inch, so the width you get depends on how many screen pixels the tool decides to put in an inch. This tool uses 96, the screen standard, which makes one source pixel exactly 0.75 points.

The result is a page that is physically large. The 1,080 × 1,920 screenshot became a page 810 × 1,440 points, or 11.25 × 20 inches. The 1,600 × 1,200 photo became 1,200 × 900 points, or 16.67 × 12.5 inches.

A 12-megapixel iPhone photo landed at 3,024 × 2,268 points, 42 × 31.5 inches, bigger than a tabloid sheet. Ask for A4 instead and every page snaps to 595.28 × 841.89 points, turned sideways for the wide pictures.

That is why "fit to image" is the right choice for screens and upload portals, and the wrong choice for anything that will be printed or measured by a form that expects paper.

What the page can hold, and what it drops

A PDF page holds one rectangle of image, at 8 bits per channel, and nothing else. There is no place in the file for a second frame, a 16-bit sample, or a pixel that is only partly there. Everything the source container carried beyond that has to be decided before the page is written.

Transparency becomes the page colour. The logo was 68% transparent, sampled across a 200-pixel copy of it. Flattened onto white, the area that used to be empty measures 255, 255, 255 on every channel.

The same file rebuilt with Transparent areas set to Black measures 0, 0, 0 in the same corner. The gap is not preserved; it is filled, and the control is which colour fills it.

Extra frames are dropped. The GIF holds 12 frames. The page holds one, and comparing it against the source frames shows which: mean channel difference 0.91 against frame 1, 16.24 against frame 7, 13.77 against frame 12. The 0.91 is JPEG noise, not content.

16 bits become 8. The gradient PNG arrived with 16-bit samples: 1,024 distinct levels across its 1,024-pixel row, out of the 65,536 the format allows. The page's row holds 256 distinct levels, and every one of the seven image objects in the file declares /BitsPerComponent 8. Colour space is DeviceRGB in all seven, including the greyscale gradient.

None of these are bugs in the converter. They are the shape of the container being written to.

The receipt: what each file weighed before and after the page

The page stores one JPEG per image, so the file's size follows the JPEG encoder, not the files you started with. Measured on the seven-file batch at quality 92:

File What it was In Page image Change
logo-transparent.png 1,200 × 800, alpha 7.3 KB 25.1 KB 3.45×
photo.jpg 1,600 × 1,200 photo 200 KB 262 KB 1.31×
screenshot-phone.png 1,080 × 1,920 UI 9.3 KB 72 KB 7.79×
animation-12-frames.gif 240 × 160, 12 frames 3.6 KB 2.5 KB 0.68×
diagram-800x600.bmp 800 × 600, uncompressed 1.37 MB 17.5 KB 0.01×
gradient-16bit.png 1,024 × 256, 16-bit 1.2 KB 5.8 KB 4.99×
actually-a-webp.png 640 × 480 WebP 3.5 KB 10.4 KB 2.94×

Two rows are worth staring at. The BMP was 1.37 MB of raw pixels and came out at 17.5 KB, because raw pixels were never compressed and a JPEG encoder compresses flat diagrams well.

The screenshot went the other way, 9.3 KB to 72 KB, because PNG compresses the long identical runs in a user interface almost for free, and JPEG works on 8 × 8 blocks and does not care about runs.

The structure around the images is small: 3,397 bytes for all seven pages, about 485 bytes per page of page dictionary, content stream and cross-reference table.

The extension is not the format

Every file is read by its first bytes, not by its name. The WebP saved under a .png name was listed as WebP · 640 × 480, converted normally, and the tool added one note to the result: 1 file read by header, not by extension.

The same check protects the batch from the other direction. A text file with a .png extension was refused with "That file isn't an image this browser can open" and zero pages were built, while the good files in the batch were untouched.

The two formats that browsers used to need help with behave the same way. A 1.43 MB iPhone HEIC was listed as HEIC · 4032 × 3024 and a 79 KB AVIF as AVIF · 1204 × 800; both became pages without a plugin, and the HEIC kept its 4032 pixels, under the 4,096 cap.

Downloads, exports and messaging apps rename files more often than you would expect. Header reading is the difference between a renamed file converting and a renamed file failing mysteriously.

Quality, background, and what actually changes the file

Same seven pages, two settings: 398 KB at Quality 92, 302 KB at Quality 70, a 24% drop. Page count and page geometry do not change; only the JPEG inside each page does.

The background colour is nearly free. Rebuilding the whole batch with Transparent areas set to Black moved the file from 407,756 bytes to 408,554, 798 bytes, or 0.2%. The colour is already inside the flattened JPEG, so it does not add a layer.

Two limits apply before you queue a large batch. Anything over 4,096 pixels on its long side is scaled down first: a 6,000 × 4,000 photo went onto the page as 4,096 × 2,731 and produced a 316 KB single-page file. And a batch of 51 files was accepted as 50, with the 51st reported rather than silently dropped.

A4 or fit to image

Pick A4 or US Letter when the PDF is going to a printer, a portal that measures pages, or a person who will read it on paper. Pick fit to image when the PDF is a container for pictures: no white bars, no cropping, every page the shape of its picture.

A mixed batch is where the difference shows. In the A4 build, the wide pictures got sideways pages (841.89 × 595.28) and the tall screenshot got an upright one (595.28 × 841.89), all inside the same document. The margin control only appears in A4 and US Letter, because a fit page has no margin to add.

Why this page doesn't upload your images

A PDF is a set of instructions plus the image data it points at. One page needs a page dictionary, a short content stream that says where to draw, and one image stream. All of that can be written by the browser, which already decoded the file.

You can check it without trusting the sentence. Open the browser's Network tab, build a PDF, and watch: no request carries your images. Stronger: load this page, cut the connection, and build anyway. A three-file batch finished with the network disabled, 3 pages, 360 KB, and the page count matched the files added.

Questions that come up with mixed image files

Can I combine PNG, JPG and WebP in one PDF? Yes. One batch of seven files covered five formats and produced seven pages in one document, in the order shown in the list.

Does a transparent PNG keep its transparency in the PDF? No. The page is opaque by definition, so transparent pixels become the colour in Transparent areas — white by default, black if you switch it. Measured on the same logo: 255, 255, 255 in the white build, 0, 0, 0 in the black one.

What happens to an animated GIF? It becomes one page holding the first frame. The tool reports the frame count so you know what you are giving up before you download.

Why is my PDF bigger than the screenshots I added? Because the page stores a JPEG. A 1,080 × 1,920 screenshot that weighed 9.3 KB as PNG took 72 KB as a page image. Step Quality down to 70 and it shrinks; the reason is re-encoding, not padding.

How many images fit in one PDF? 50 per document, 120 MB per file. Part of a 51-file batch is reported, not silently dropped, and the rest still builds.

Does a 16-bit PNG stay 16-bit? No. The page stores 8 bits per channel, and the file says so in every image object. A 1,024-level gradient came out as 256 levels.

Is the image itself re-encoded? Yes, once, as JPEG at the quality you pick. That is why a 200 KB photo can come out at 262 KB: the page does not reuse your JPEG, it decodes it, draws it and writes a new one.