Add your JXL file
Drop one or more .jxl files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Converting a .jxl image to .pgm re-encodes the pixels for a different balance of size, quality, and support. Free, private, and validated — the file never leaves your browser.
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.Converting a .jxl image to .pgm re-encodes the pixels for a different balance of size, quality, and support. A .jxl file uses JPEG XL, the JPEG committee's designated successor to the original JPEG, engineered to cover lossy photography, lossless graphics, and animation in one codec. Uniquely, it can re-compress existing JPEG files about 20 percent smaller with bit-exact reversibility, making it attractive for archiving legacy photo libraries.
A .pgm file is a Portable Graymap: a single-channel greyscale image storing one intensity value per pixel, with the maximum value declared in the header. It is the middle rung of the Netpbm ladder — richer than a one-bit bitmap, simpler than a colour pixmap. For this route the practical draw is raw samples in a declared range — no codec, no colour management, nothing to misinterpret and supports 16-bit depth, which most consumer formats do not — balanced against uncompressed, so files are large relative to PNG for the same data, which is worth knowing before you commit a large batch.
The practical trigger for this conversion is usually a mismatch: with .jxl, chrome and Firefox do not ship it by default, which blocks mainstream web use. Switching to .pgm buys you raw samples in a declared range — no codec, no colour management, nothing to misinterpret, which is why it is the better fit for machine vision and image-processing pipelines that operate on intensity alone. Because the conversion runs locally, trying it costs nothing but a few seconds of compute on your own machine.
| Aspect | JPEG XL image (.jxl) | Portable graymap (.pgm) |
|---|---|---|
| Format type | Lossy — discards detail it judges invisible to shrink files | Lossless — every pixel or sample is preserved exactly |
| How it stores data | two coding paths: VarDCT for lossy photographic content and Modular mode for lossless or synthetic imagery | p2 stores samples as whitespace-separated ASCII integers; P5 stores them as raw bytes |
| Strongest at | archiving JPEG collections at reduced size with a guaranteed path back to the originals | machine vision and image-processing pipelines that operate on intensity alone |
| Weak spot | chrome and Firefox do not ship it by default, which blocks mainstream web use | uncompressed, so files are large relative to PNG for the same data |
| Metadata | eXIF and XMP are embedded in dedicated container boxes and survive JPEG-to-JXL transcoding, including full restoration when reconstructing the original JPEG | none beyond header comments. No colour profile, no EXIF, no acquisition metadata — anything an instrument recorded alongside the pixels has to travel in a separate file |
Drop one or more .jxl files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Select .pgm in the output menu next to each file. The menu only offers targets this engine can genuinely produce, so if PGM is selectable, the route is real and validated.
Press Convert. Decoding and re-encoding happen on your device using the browser's native image pipeline and hand-tuned encoders.
Each result is signature-checked before the download unlocks, so a failed encode can never masquerade as a valid PGM file. Outputs keep the original filename with the .pgm extension.
No new loss is introduced — since jxl is lossy-oriented and pgm is lossless-oriented, everything the .jxl file still contains is carried over exactly. What was already discarded by the original lossy encode cannot be recovered, though; converting to .pgm does not "restore" quality.
Yes — the .jxl file is processed inside your browser tab and never uploaded. Decoding and re-encoding happen on your device using the browser's native image pipeline and hand-tuned encoders. Close the tab and the file is gone from memory.
Standard in scientific and machine-vision toolchains — OpenCV, ImageMagick, MATLAB and Netpbm all read it — and absent from consumer software and browsers. Novus Convert decodes both ASCII and binary PGM locally, honours the declared maximum value when scaling to 8-bit output, and converts to the standard raster formats.
Larger, sometimes much larger. A lossless .pgm must store every pixel or sample the decoder produced, without the perceptual shortcuts .jxl used. Use this route for editing headroom, not for saving space.
In .jxl, eXIF and XMP are embedded in dedicated container boxes and survive JPEG-to-JXL transcoding, including full restoration when reconstructing the original JPEG. Re-encoding through the browser pipeline does not carry embedded metadata into the output, which doubles as a privacy scrub — check the exported file if you specifically need tags preserved.