Add your JPEG file
Drop one or more .jpeg 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 .jpeg 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 .jpeg image to .pgm re-encodes the pixels for a different balance of size, quality, and support. A .jpeg file is byte-for-byte the same format as a .jpg file; only the extension spelling differs. The four-letter .jpeg ending is the format's full name, while .jpg exists because early MS-DOS and Windows file systems limited extensions to three characters. Renaming between the two changes nothing about the image data.
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 .jpeg, two spellings for one format confuse filters, upload validators, and scripts that match extensions literally. 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 image (.jpeg) | 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 | identical bitstream to .jpg: DCT-based coding defined in ITU-T T.81 / ISO/IEC 10918-1 | p2 stores samples as whitespace-separated ASCII integers; P5 stores them as raw bytes |
| Strongest at | workflows on macOS and Linux where tools historically defaulted to the .jpeg spelling | machine vision and image-processing pipelines that operate on intensity alone |
| Weak spot | two spellings for one format confuse filters, upload validators, and scripts that match extensions literally | uncompressed, so files are large relative to PNG for the same data |
| Metadata | eXIF, XMP, IPTC, and ICC profiles are stored exactly as in .jpg files, and all of it survives a simple rename between the two extensions | 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 .jpeg 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 jpeg is lossy-oriented and pgm is lossless-oriented, everything the .jpeg 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 .jpeg 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 .jpeg used. Use this route for editing headroom, not for saving space.
In .jpeg, eXIF, XMP, IPTC, and ICC profiles are stored exactly as in .jpg files, and all of it survives a simple rename between the two extensions. 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.