Initializing... drag & drop files here
Supports: HEIF
HEIF and PPM sit at opposite ends of every axis an image format has. HEIF wraps HEVC-compressed picture data in an ISO container with metadata, thumbnails, depth maps and an alpha channel. PPM is a magic number, three numbers and raw bytes.
People convert one to the other for a specific reason: a scientific tool, an image-processing pipeline, a piece of embedded software or a university assignment needs pixels it can read without a decoding library. This page covers what that costs, and the one behaviour that catches people out — transparency comes out black.
| Property | HEIF (source) | PPM (target) |
|---|---|---|
| Container | ISO base media, ftyp/meta boxes |
none — the header is one line of text |
| Coding | HEVC, lossy | raw samples, no compression |
| Chroma | 4:2:0 subsampled | full-resolution RGB |
| Alpha channel | yes | no |
| Bit depth commonly stored | 8-bit, sometimes 10-bit | 8-bit or 16-bit per channel |
| Metadata, Exif, depth maps | yes | none at all |
| Multiple images per file | yes — bursts, live photos, thumbnails | one image per file |
| Size of a 1920 × 1080 frame | typically 60–200 KB | 6,220,817 bytes, always |
| Software needed to read it | an HEVC-capable decoder | roughly twenty lines of code |
The size row is the whole trade. A PPM's cost is exactly three bytes per pixel and it does not vary with content: a photograph of a blank wall and a photograph of a forest produce identical file sizes. That predictability is the point.
This is the behaviour to know before you convert. PPM's P6 format stores exactly three samples per pixel and has no fourth channel, so an HEIF's alpha has nowhere to go. We built a HEIF that was half solid #CC2244 and half fully transparent, ran it through, and sampled the result:
| Region of the source | Sampled in the PPM |
|---|---|
Opaque #CC2244 |
#CC2344 — colour preserved to within HEVC's own rounding |
| Fully transparent | #000000 — solid black |
Transparent areas are composited onto black, not onto white and not onto anything you choose. If your HEIF has a cut-out subject and you convert it here, the background arrives black.
There are two ways around it: flatten the image onto the colour you want in an editor before uploading, or use a target that can hold alpha. HEIF to PNG preserves transparency, which makes it the right answer whenever alpha matters — and its Highest preset keeps true colour rather than quantising to a palette.
That measurement also shows what does survive. The opaque half came back as #CC2344 against a source authored as #CC2244 — a one-unit shift, and it happened in the HEIF encode rather than in the PPM step. HEIF's 4:2:0 chroma subsampling stores colour at half resolution in each direction, so small colour shifts are baked in before this conversion begins. The PPM itself adds nothing.
.heif onto the drop zone or click "Add Files". Several files can be queued and run with the same settings.Because PPM cannot store transparency and the transparent pixels are composited onto black. We measured this directly: a fully transparent region came out as #000000. Flatten the HEIF onto your preferred background colour in an editor first, or convert to HEIF to PNG instead, which keeps the alpha channel intact.
Almost never. Most HEIF files store 8 bits per channel, and asking for 16-bit writes those same values into wider samples — the file doubles in size and the number of distinct colours does not change. Choose it only when a downstream program specifically requires a 16-bit pixmap.
Not what its label implies. It keeps the three-byte-per-pixel P6 layout and simply sets the maximum sample value to 1, so each channel becomes on or off and the image collapses to eight colours — black, white and the six primaries. The file does not get smaller. It is not a greyscale or bilevel conversion.
Exactly three bytes per pixel plus a short header, every time. A 1920 × 1080 image is 6,220,817 bytes; a 4000 × 3000 phone photo is about 36 MB. Content makes no difference at all, because nothing is compressed. Reduce the resolution if the size is a problem — it is the only control that moves the number.
No. PPM has no metadata capability whatsoever — no Exif, no colour profile, no orientation flag, no timestamp. If you need the camera information, extract it before converting or keep the original HEIF alongside the pixmap.
The primary image. A HEIF can hold several pictures — burst frames, thumbnails, depth maps — and a PPM holds exactly one, so the additional images are not written. Extract them with a HEIF-aware tool first if you need more than the main picture.
The PPM step is, but the source is not. HEIF is lossy HEVC at 4:2:0 chroma, so the compression artefacts and colour subsampling in your file are already there before conversion starts. The pixmap is a faithful copy of whatever the decoder produced — a perfect record of an imperfect image.
Because PPM is uncompressed and has no quality parameter. Bit Depth and Image resolution are the entire control surface. A quality slider would have nothing to adjust.
They are the colour, greyscale and bilevel members of the same Netpbm family: PPM stores three samples per pixel, PGM one, PBM one bit. This page writes PPM, so a colour source stays colour. If you want a genuine single-channel greyscale file, PGM is the format to target rather than the 1-bit option here.