Resize PPM images online for free. Scale scientific and image-processing output by exact pixels or percentage.
PPM (Portable Pixmap) is part of the Netpbm toolkit created by Jef Poskanzer in the late 1980s and still widely used as an intermediate format in image-processing pipelines. PPM files are uncompressed: in the binary P6 variant, every pixel is stored as 3 raw bytes (R, G, B) at 8-bit depth, so a 1920×1080 image weighs about 6.2 MB before any header. The plain P3 variant uses ASCII decimal numbers and runs roughly 3× larger again. Because PPM has no entropy coding, the only way to make the file smaller while staying inside the format is to drop dimensions or bit depth — this resizer changes the dimensions, and it always writes 8-bit binary P6.
P6 PPM because it's the simplest possible format to write from a render loop. A 4096×4096 PPM is around 48 MB; resizing to 50% drops it to ~12 MB so you can submit it or share it without zipping.gs -sDEVICE=ppmraw and ImageMagick's PPM writer both produce uncompressed pixmaps as a stable IPC format between tools. Resizing the intermediate before the next pipeline stage cuts disk traffic and downstream memory footprint without changing the format contract.cv2.imread reads PPM natively and many older CV reference datasets (e.g., the CMU and Middlebury stereo sets) ship as PPM. Down-resizing oversized frames to a fixed input shape (224×224 for ImageNet-style models, 640×640 for YOLO) is a standard preprocessing step that's faster as a one-time resize than a per-epoch transform.Maxval up to 65535, which means microscopy and astrophotography pipelines often write 16-bit-per-channel PPMs at 6 bytes per pixel. A 4K (3840 × 2160) 16-bit PPM is ~48 MB; halving the dimensions plus dropping to 8-bit (the editor saves 16-bit PPMs as 8-bit) takes that to about 6 MB.P6) for downstream tools that expect PPM.| Resolution | 8‑bit RGB (P6) | 16‑bit RGB (P6, Maxval > 255) | After 50% resize (8‑bit) |
|---|---|---|---|
| 640 × 480 | ~900 KB | ~1.8 MB | ~225 KB |
| 1280 × 720 | ~2.7 MB | ~5.4 MB | ~675 KB |
| 1920 × 1080 | ~6.2 MB | ~12.4 MB | ~1.6 MB |
| 2560 × 1440 | ~11 MB | ~22 MB | ~2.7 MB |
| 3840 × 2160 | ~24 MB | ~48 MB | ~6.2 MB |
| 7680 × 4320 | ~95 MB | ~190 MB | ~24 MB |
Sizes are pixel-data only at the binary P6 magic; the few-line ASCII header (magic, width, height, Maxval) is negligible. The plain P3 variant stores the same pixels as ASCII decimal numbers and runs roughly 3× larger.
| Target | Output dimensions | Output size | Use case |
|---|---|---|---|
| 100% (original) | 1920 × 1080 | ~6.2 MB | Lossless reference for pipeline |
| 75% | 1440 × 810 | ~3.5 MB | Smaller intermediate, same format |
| 50% | 960 × 540 | ~1.6 MB | Fast preview / dataset thumbnail |
| 25% | 480 × 270 | ~390 KB | Inline doc figure / paper appendix |
| 720p preset | 1280 × 720 | ~2.7 MB | Standard HD reference |
| 480p preset | 853 × 480 | ~1.2 MB | Legacy display / embedded panel |
| 224 × 224 (custom) | 224 × 224 | ~150 KB | ImageNet-class CNN input |
Downscaling resamples pixels with a standard reconstruction filter and produces a faithful smaller version of the original — there are no JPEG-style block artifacts because PPM itself doesn't apply lossy compression. Upscaling can't invent detail that wasn't there: pixels are interpolated and the result looks softer than a native high-resolution capture. For most pipeline uses (renderer output, dataset preprocessing, scientific previews) downscaling at 50–75% is visually indistinguishable from the original at the new display size, and that's also how Netpbm's own pamscale tool works under the hood.
If your downstream tool accepts PNG, PPM to PNG is almost always the better move: PNG is also lossless but uses DEFLATE compression, so a 6 MB PPM often becomes 500 KB–1.5 MB as PNG with no quality change. Keep PPM only when the consumer explicitly requires it — academic pipelines that read raw P6, ImageMagick / Ghostscript intermediates, OpenCV-based research code, or graders that check the magic-number header. For long-term archival, PPM to TIFF gives you LZW-compressed lossless storage; for quick sharing, PPM to JPG is 10–20× smaller again at quality 85.
PPM has no entropy coding at all — even after resizing, every pixel still costs 3 bytes at 8-bit color (or 6 bytes at 16-bit). A 1920×1080 photo is ~6.2 MB as P6 PPM but might be 300–800 KB as JPG at quality 85, because JPG applies DCT-based lossy compression and Huffman coding. Inside the PPM container your size levers are exactly three: pixel count (resize), bit depth (drop from 16-bit to 8-bit halves the file), and choosing binary P6 over ASCII P3 (3× smaller for the same pixels). This editor always writes 8-bit binary P6, so only the first lever is yours to set. If file size matters more than format compatibility, convert to PNG, WebP, or JPG.
Yes. With "Keep aspect ratio" on (the lock button), enter one dimension and the other follows the source ratio — no distortion. Only with the lock off do a width and height that don't match the original ratio stretch the image. When a source's ratio is unfamiliar, a percent size (unit %) or a single-dimension target (e.g., type only width=1024 with the lock on) is safer than fixed pixel pairs.
The editor always writes binary P6 PPM (a P3 input is saved as P6 too), which is what most tools (ImageMagick, Ghostscript, OpenCV, GIMP, feh) read by preference and what the Netpbm spec recommends as the "raw" format. ASCII P3 is mostly used in classroom contexts and for human-readable test cases. If you specifically need P3, generate it after the resize with a tool like pnmtoplainpnm from the Netpbm package; xconvert outputs raw PPM for compatibility and file size.
The editor can make an image up to 16384 px on a side and 120 megapixels, and it tells you when a size is past that. Opening is limited by how much memory your browser tab can hold; PPM files are processed right in your browser, so they are not uploaded. Very large scientific or astronomy frames (e.g., a 16-bit 8K PPM at ~190 MB) can be slow to open, especially on a phone, and the editor saves them as 8-bit.
Not in this editor — it has no bit-depth or palette setting (a 16-bit PPM is simply saved as 8-bit). Resize here, then use Compress PPM to reduce the file further, or save as PNG with "Save as" for a compact lossless file.
Yes — drop up to 50 PPM files at once (a mixed batch works too). The size, format and quality you set apply to every file in the batch; "Download all (.zip)" saves every resized result in one ZIP, and "Download one by one" saves them separately.
Use the dedicated tools: crop PPM for trimming to a region, rotate PPM for 90/180/270° turns or arbitrary angles, and compress PPM when the dimensions are fine but the file is too big. To go the other way and produce PPM from another format, see PNG to PPM or JPG to PPM.