summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man5/pgm.5
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/mageia-cauldron/man5/pgm.5')
-rw-r--r--upstream/mageia-cauldron/man5/pgm.5247
1 files changed, 247 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man5/pgm.5 b/upstream/mageia-cauldron/man5/pgm.5
new file mode 100644
index 00000000..78a5373d
--- /dev/null
+++ b/upstream/mageia-cauldron/man5/pgm.5
@@ -0,0 +1,247 @@
+\
+.\" This man page was generated by the Netpbm tool 'makeman' from HTML source.
+.\" Do not hand-hack it! If you have bug fixes or improvements, please find
+.\" the corresponding HTML page on the Netpbm website, generate a patch
+.\" against that, and send it to the Netpbm maintainer.
+.TH "PGM Format Specification" 5 "09 October 2016" "netpbm documentation"
+
+.SH NAME
+
+pgm - Netpbm grayscale image format
+
+.UN description
+.SH DESCRIPTION
+.PP
+This program is part of
+.BR "Netpbm" (1)\c
+\&.
+.PP
+The PGM format is a lowest common denominator grayscale file format.
+It is designed to be extremely easy to learn and write programs for.
+(It's so simple that most people will simply reverse engineer it
+because it's easier than reading this specification).
+.PP
+A PGM image represents a grayscale graphic image. There are many
+pseudo-PGM formats in use where everything is as specified herein except
+for the meaning of individual pixel values. For most purposes, a PGM
+image can just be thought of an array of arbitrary integers, and all the
+programs in the world that think they're processing a grayscale image
+can easily be tricked into processing something else.
+.PP
+The name "PGM" is an acronym derived from "Portable Gray Map."
+.PP
+One official variant of PGM is the transparency mask. A transparency
+mask in Netpbm is represented by a PGM image, except that in place of
+pixel intensities, there are opaqueness values. See below.
+
+.UN format
+.SH THE FORMAT
+.PP
+The format definition is as follows. You can use the
+.BR "libnetpbm" (1)\c
+\& C subroutine library to conveniently
+and accurately read and interpret the format.
+.PP
+A PGM file consists of a sequence of one or more PGM images. There are
+no data, delimiters, or padding before, after, or between images.
+.PP
+Each PGM image consists of the following:
+
+
+
+.IP \(bu
+A "magic number" for identifying the file type.
+A pgm image's magic number is the two characters "P5".
+
+.IP \(bu
+Whitespace (blanks, TABs, CRs, LFs).
+
+.IP \(bu
+A width, formatted as ASCII characters in decimal.
+
+.IP \(bu
+Whitespace.
+
+.IP \(bu
+A height, again in ASCII decimal.
+
+.IP \(bu
+Whitespace.
+
+.IP \(bu
+The maximum gray value (Maxval), again in ASCII decimal. Must be less
+than 65536, and more than zero.
+
+.IP \(bu
+A single whitespace character (usually a newline).
+
+.IP \(bu
+A raster of Height rows, in order from top to bottom. Each row
+consists of Width gray values, in order from left to right. Each gray
+value is a number from 0 through Maxval, with 0 being black and Maxval
+being white. Each gray value is represented in pure binary by either
+1 or 2 bytes. If the Maxval is less than 256, it is 1 byte.
+Otherwise, it is 2 bytes. The most significant byte is first.
+.sp
+A row of an image is horizontal. A column is vertical. The pixels
+in the image are square and contiguous.
+.sp
+Each gray value is a number proportional to the intensity of the
+pixel, adjusted by the ITU-R Recommendation BT.709 gamma transfer
+function. (That transfer function specifies a gamma number of 2.2 and
+has a linear section for small intensities). A value of zero is
+therefore black. A value of Maxval represents CIE D65 white and the
+most intense value in the image and any other image to which the image
+might be compared.
+.sp
+BT.709's range of channel values (16-240) is irrelevant to PGM.
+.sp
+Note that a common variation from the PGM format is to have the
+gray value be "linear," i.e. as specified above except
+without the gamma adjustment. \fBpnmgamma\fP takes such a PGM
+variant as input and produces a true PGM as output.
+.sp
+Another popular variation from PGM is to substitute the newer sRGB transfer
+function for the BT.709 one. You can use \fBpnmgamma\fP to convert between
+this variation and true PGM.
+.sp
+In the transparency mask variation from PGM, the value represents
+opaqueness. It is proportional to the fraction of intensity of a
+pixel that would show in place of an underlying pixel. So what
+normally means white represents total opaqueness and what normally
+means black represents total transparency. In between, you would
+compute the intensity of a composite pixel of an "under" and
+"over" pixel as under * (1-(alpha/alpha_maxval)) + over *
+(alpha/alpha_maxval). Note that there is no gamma transfer function
+in the transparency mask.
+
+
+.PP
+Strings starting with "#" may be comments, the same as
+with
+.BR "PBM" (1)\c
+\&.
+.PP
+Note that you can use \fBpamdepth\fP to convert between a the
+format with 1 byte per gray value and the one with 2 bytes per gray
+value.
+.PP
+All characters referred to herein are encoded in ASCII.
+"newline" refers to the character known in ASCII as Line
+Feed or LF. A "white space" character is space, CR, LF,
+TAB, VT, or FF (I.e. what the ANSI standard C isspace() function
+calls white space).
+
+.UN plainpgm
+.SS Plain PGM
+.PP
+There is actually another version of the PGM format that is fairly
+rare: "plain" PGM format. The format above, which generally
+considered the normal one, is known as the "raw" PGM format.
+See
+.BR "pbm" (1)\c
+\& for some commentary on how plain
+and raw formats relate to one another and how to use them.
+.PP
+The difference in the plain format is:
+
+
+.IP \(bu
+
+There is exactly one image in a file.
+.IP \(bu
+
+The magic number is P2 instead of P5.
+.IP \(bu
+
+Each pixel in the raster is represented as an ASCII decimal number
+(of arbitrary size).
+.IP \(bu
+
+Each pixel in the raster has white space before and after it. There must
+be at least one character of white space between any two pixels, but there
+is no maximum.
+.IP \(bu
+
+No line should be longer than 70 characters.
+
+.PP
+Here is an example of a small image in the plain PGM format.
+
+.nf
+P2
+# feep.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
+
+.fi
+.PP
+There is a newline character at the end of each of these lines.
+.PP
+Programs that read this format should be as lenient as possible,
+accepting anything that looks remotely like a PGM.
+
+
+.UN internetmediatype
+.SH INTERNET MEDIA TYPE
+.PP
+No Internet Media Type (aka MIME type, content type) for PGM has been
+registered with IANA, but the value \f(CWimage/x-portable-graymap\fP
+is conventional.
+.PP
+Note that the PNM Internet Media Type \f(CWimage/x-portable-anymap\fP
+also applies.
+
+
+.UN filename
+.SH FILE NAME
+.PP
+There are no requirements on the name of a PGM file, but the convention is
+to use the suffix ".pgm". "pnm" is also conventional, for
+cases where distinguishing between the particular subformats of PNM is not
+convenient.
+
+
+.UN compatibility
+.SH COMPATIBILITY
+.PP
+Before April 2000, a raw format PGM file could not have a maxval greater
+than 255. Hence, it could not have more than one byte per sample. Old
+programs may depend on this.
+.PP
+Before July 2000, there could be at most one image in a PGM file. As
+a result, most tools to process PGM files ignore (and don't read) any
+data after the first image.
+
+.UN seealso
+.SH SEE ALSO
+.BR "pnm" (1)\c
+\&,
+.BR "pbm" (1)\c
+\&,
+.BR "ppm" (1)\c
+\&,
+.BR "pam" (1)\c
+\&,
+.BR "libnetpbm" (1)\c
+\&,
+.BR "programs that process PGM" (1)\c
+\&,
+
+.UN author
+.SH AUTHOR
+
+Copyright (C) 1989, 1991 by Jef Poskanzer.
+.SH DOCUMENT SOURCE
+This manual page was generated by the Netpbm tool 'makeman' from HTML
+source. The master documentation is at
+.IP
+.B http://netpbm.sourceforge.net/doc/pgm.html
+.PP \ No newline at end of file