LinuxCommandLibrary

pnmtorle

Convert PNM images to RLE format

TLDR

Convert a PNM image to an RLE image

$ pnmtorle [path/to/input.pnm] > [path/to/output.rle]
copy

Print PNM header information to stdout
$ pnmtorle [[-verb|-verbose]] [path/to/input.pnm] > [path/to/output.rle]
copy

Include a transparency channel in the output image in which every black pixel is set to fully transparent and every other pixel is set to fully opaque
$ pnmtorle [[-a|-alpha]] [path/to/input.pnm] > [path/to/output.rle]
copy

SYNOPSIS

pnmtorle [pnmfile]

DESCRIPTION

pnmtorle is a utility from the Netpbm suite of graphics manipulation tools. Its primary function is to convert image files from the Portable Anymap (PNM) format into the Utah Run Length Encoded (RLE) format. The PNM format is a versatile family that includes Portable Pixmap (PPM) for color images, Portable Graymap (PGM) for grayscale, and Portable Bitmap (PBM) for black-and-white images.

The command reads a PNM image either from standard input or from a specified file. It then processes the image data and outputs the converted RLE image to standard output. RLE is a simple form of data compression that works by storing sequences of identical data values as a single value and count, making it effective for images with large areas of uniform color. While less common today, RLE was historically significant in computer graphics for efficient storage and transmission of images, particularly in certain rendering and scientific visualization applications. pnmtorle is valuable for workflows requiring interconversion with this specific legacy format.

CAVEATS

The RLE format is an older image format and is not as widely supported or as efficient for general photographic images as modern formats like PNG or JPEG. Its compression effectiveness is highly dependent on the image content, performing best on images with large contiguous blocks of the same color. The output format is specifically Utah RLE, which might not be universally compatible with all RLE decoders. pnmtorle expects a valid PNM input; malformed input may lead to errors or corrupted output. As it doesn't support options like scaling or color depth adjustment, input PNM characteristics directly influence the output RLE.

INPUT/OUTPUT BEHAVIOR

pnmtorle operates by reading its input from a specified pnmfile. If no filename is provided, it defaults to reading the PNM image data from standard input (stdin). The resulting RLE image data is always written to standard output (stdout). This design facilitates its use in command-line pipelines, allowing for seamless integration with other Netpbm tools or external commands, such as "some_command | pnmtorle | another_command" for complex image processing workflows.

HISTORY

The pnmtorle command is an integral part of the Netpbm project, which originated from Jef Poskanzer's Pbmplus package developed in the late 1980s. Pbmplus was conceived to provide a flexible and modular toolkit for manipulating image files, built around the simple yet powerful Portable Anymap formats.

As image processing became more prevalent, tools like pnmtorle were created to enable conversion between Netpbm's internal formats and other common (at the time) image standards, such as Utah RLE, which was used in graphics applications and systems like the Evans & Sutherland Picture System. The Netpbm project has continued to evolve and be maintained, ensuring these fundamental image conversion capabilities remain available and compatible with contemporary Unix-like systems.

SEE ALSO

rletoppm(1), ppm(5), pgm(5), pbm(5), pnm(5), netpbm(1), anytopnm(1)

Copied to clipboard