Portable pixmap
Filename extension .ppm, .pgm, .pbm, .pnm
Internet media type image/x-portable-pixmap, -graymap, -bitmap, -anymap all unofficial
Developed by Jef Poskanzer
Type of format Image file formats

The phrase Netpbm format commonly refers to any or all of the members of a set of closely related graphics formats used and defined by the Netpbm project. The portable pixmap format (PPM), the portable graymap format (PGM) and the portable bitmap format (PBM) are image file formats designed to be easily exchanged between platforms. They are also sometimes referred to collectively as the portable anymap format (PNM).[1]

Contents

History [link]

The PBM format was invented by Jef Poskanzer in the 1980s as a format that allowed monochrome bitmaps to be transmitted within an email message as plain ASCII text, allowing it to survive any changes in text formatting.

Poskanzer developed the first library of tools to handle the PBM format, Pbmplus, released in 1988. It mainly contained tools to convert between PBM and other graphics formats. By the end of 1988, Poskanzer had developed the PGM and PPM formats along with their associated tools and added them to Pbmplus. The final release of Pbmplus was December 10, 1991.

In 1993, the Netpbm library was developed to replace the unmaintained Pbmplus. It was simply a repackaging of Pbmplus with additions and fixes submitted by people all over the world.[2]

File format description [link]

Each format differs in what colors it is designed to represent:

  • PBM is for bitmaps (black and white, no grays)[3]
  • PGM is for grayscale
  • PPM is for "pixmaps" which represent full RGB color.[4]

Each file starts with a two-byte magic number (in ASCII) that explains the type of file it is (PBM, PGM, and PPM) and its encoding (ASCII or binary). The magic number is a capital P followed by a single digit number.

Magic Number Type Encoding
P1 Portable bitmap ASCII
P2 Portable graymap ASCII
P3 Portable pixmap ASCII
P4 Portable bitmap Binary
P5 Portable graymap Binary
P6 Portable pixmap Binary

The ASCII based formats allow for human-readability and easy transport to other platforms (so long as those platforms understand ASCII), while the binary formats are more efficient both at saving space in the file, as well as being easier to parse due to the absence of whitespace.

When using the binary formats, PBM uses 1 bit per pixel, PGM uses 8 bits per pixel, and PPM uses 24 bits per pixel: 8 for red, 8 for green, 8 for blue.

PBM example [link]

A simple example of the PBM format is as follows (There is a newline character at the end of each line.):

P1
# This is an example bitmap of the letter "J"
6 10
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
1 1 1 1 1 1

The string P1 identifies the file format. The hash sign introduces a comment. The next two numbers give the width and the height. Then follows the matrix with the pixel values (in the monochrome case here, only zeros and ones).

Here is the resulting image: Example of ASCII-art turned into a bitmap.pbm.png

Here it is again magnified 20 times: Example of ASCII-art turned into a bitmap scale20.pbm.png

PGM example [link]

The PGM and PPM formats (both ASCII and binary versions) have an additional parameter for the maximum value (numbers of grey between black and white) after the X and Y dimensions and before the actual pixel data. Black is 0 and max value is white. There is a newline character at the end of each line.

P2
# Shows the word "FEEP" (example from Netpbm main page on PGM)
24 7
15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

Example (magnified): Feep netbpm p2 pgm example.png

PPM example [link]

This is an example of a color RGB image stored in PPM format. There is a newline character at the end of each line.

P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows,
# then 255 for max color, then RGB triplets
3 2
255
255   0   0     0 255   0     0   0 255
255 255   0   255 255 255     0   0   0

The image (magnified): Tiny6pixel.png

The P6 binary format of the same image represents each color component of each pixel with one byte (thus three bytes per pixel) in the order red, green, then blue. The file is smaller but the color information is not readable by humans.

The PPM format is not compressed, and thus requires more space and bandwidth than a compressed format would require. For example, the above 192x128 PNG image has a file size of 166 bytes. When converted to a 192x128 PPM image, the file size is 73,848 bytes. The PPM format is generally an intermediate format used for image work before converting to a more efficient format, for example the PNG (Portable Network Graphics) format, without any loss of information in the intermediate step.

16-bit extensions [link]

The original definition of the PGM and the PPM binary formats (the P5 and P6 formats) did not allow bit depths greater than 8 bits. One can of course use the ASCII format, but this format both slows down reading and makes the files much larger. Accordingly, many programmers extended the format to allow higher bit depths. Using higher bit depths encounters the problem of having to decide on the endianness of the file. The various implementations could not agree on which byte order to use, and some connected the 16-bit endianness to the pixel packing order.[5] In Netpbm, the de facto standard implementation of the PNM formats, the most significant byte is first.

See also [link]

References [link]

External links [link]

Examples of ppm files in various formats



https://wn.com/Netpbm_format

PPM

PPM is an initialism that may refer to:

Arts and entertainment

  • Peter, Paul and Mary, a 1960s folk music trio
  • Picture Postcard Monthly, a magazine for collectors of postcards
  • Please Please Me, the first album by The Beatles
  • Organisations

  • Mauritanian People's Party, Mauritanian political party
  • Partido Popular Monárquico (People's Monarchist Party), Portuguese political party
  • Persekutuan Pengakap Malaysia, the Scouts Association of Malaysia
  • Progressive Party of Maldives, a political party in the Maldives
  • Parry People Movers, a British company manufacturing lightweight railbuses
  • Science and technology

    Astronomy

  • PPM Star Catalogue An astrometric catalogue of 378,910 stars
  • Computing

  • Perl package manager, a software utility for distributing pre-compiled Perl modules
  • Permutation parity machine, a form of neural network for cryptography
  • Probabilistic Packet Marking, an IP traceback method
  • Portable pixmap, a graphics file format, see Netpbm format
  • Prediction by partial matching, an algorithm for data compression
  • This page contains text from Wikipedia, the Free Encyclopedia - https://wn.com/PPM

    AB Pictoris

    AB Pictoris (abbreviated AB Pic, also catalogued as HD 44627) is a K-type star, approximately 148 light-years away in the constellation of Pictor. It has been identified as a member of the young (30 million years old) TucanaHorologium association. The star has also been classified as a BY Draconis variable. In 2005 it was announced that an astronomical object (AB Pictoris b, abbreviated AB Pic b) had been imaged in 2003 and 2004 close to and apparently in orbit around the star. Its mass suggests that it is at the borderline between being a brown dwarf or a planet.

    Possible planetary system

    In 2003 and 2004, an object (now catalogued as AB Pictoris b) was observed close to the star by a team of astronomers at the European Southern Observatory. Since it had common proper motion with AB Pictoris, it was concluded that it was physically close to the star. Its spectral type was estimated as between L0V and L3V. Using evolutionary models, its mass was estimated as from 13 to 14 Jupiter masses. However, because modelling such young objects is difficult, this estimate is very uncertain; some models give masses as low as 11 Jupiter masses or as high as 70 Jupiter masses. Temperature estimates range from 1600 K to 2400 K. As it is not known if the mass of the object exceeds the deuterium burning limit of 13 Jupiter masses, it is not clear whether the object should be classified as an extrasolar planet or a brown dwarf.

    Podcasts:

    PLAYLIST TIME:
    ×