Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
User manual for	old pnm	funLibrary3FunctioUseramanual for old pnm functions(3)

NAME
       libpnm -	libnetpbm functions to read and	write PNM image	files

SYNOPSIS
       #include	<netpbm/pnm.h>

       void pnm_init( int *argcP, char *argv[] );

       xel ** pnm_allocarray( int cols,	int rows);

       xel * pnm_allocrow( int cols);

       void pnm_freearray( xel **xels, int rows);

       void pnm_freerow( xel *xelrow);

       void  pnm_readpnminit(  FILE  *fp, int *colsP, int *rowsP, xelval *max-
       valP, int *formatP );

       void pnm_readpnmrow( FILE *fp, xel *xelrow, int	cols,  xelval  maxval,
       int format );

       xel  ** pnm_readpnm( FILE *fp, int *colsP, int *rowsP, xelval *maxvalP,
       int* formatP );

       void pnm_writepnminit( FILE *  fp , int cols, int rows, xelval  maxval,
       int format, int forceplain);

       void  pnm_writepnmrow(  FILE *fp, xel *xelrow, int cols,	xelval maxval,
       int format, int forceplain );

       void pnm_writepnm( FILE *fp, xel	** xels, int cols,  int	 rows,	xelval
       maxval, int format, int forceplain );

       void pnm_nextimage(FILE * file,
	 int * const eofP);

       void pnm_check( FILE * file, const enum pm_check_type check_type, const
       int format, const int cols, const int rows, const xelval	 maxval,  enum
       pm_check_code *retvalP);

       void  pnm_promoteformatrow(  xel	 *xelrow, int cols, xelval maxval, int
       format, xelval newmaxval, int newformat);

       void pnm_promoteformat( xel **xels, int cols, xelval maxval,  int  for-
       mat, xelval newmaxval, int newformat);

       xel pnm_whitexel( xelval	maxval,	int format);

       xel pnm_blackxel( xelval	maxval,	int format);

       void pnm_invertxel( xel *x, xelval maxval, int format);

       xel  pnm_backgroundxelrow(  xel	*xelrow,  int cols, xelval maxval, int
       format);

       xel pnm_backgroundxel( xel **xels, int cols, int	rows,  xelval  maxval,
       int format);

       typedef ... xelval;

       typedef ... xel;

       #define PNM_ASSIGN1(x,v)	...

       #define PNM_GET1(x) ...

       #define PNM_EQUAL(x,y) ...

       #define PNM_FORMAT_TYPE(format) ...

DESCRIPTION
       These library functions are part	of Netpbm(1).

   TYPES AND CONSTANTS
       Each  xel contains three	xelvals, each of which should contain only the
       values between 0	and PNM_MAXMAXVAL, inclusive.

   XEL MANIPULATIONS
       The PNM_GET1 macro extracts a single value from an xel,	when  ou  know
       it's  from  a  PBM  or  PGM  file.   When  it's	from  a	 PPM file, use
       PPM_GETR(), PPM_GETG(), and PPM_GETB().

       The PNM_ASSIGN1 macro assigns a single value to an xel, when  you  know
       it's  from  a  PBM or PGM file.	When it's from a PPM file, use PPM_AS-
       SIGN.

       The PNM_EQUAL macro checks two xels for equality.  The  PNM_FORMAT_TYPE
       macro computes a	format type code from a	format code.  The format types
       are PBM,	PGM, PPM, and PAM.  But	note that PBM, PGM, and	PPM  each  are
       two  different  formats:	 a plain one and a raw one.  So	there are four
       format types, but seven formats.	 PNM_FORMAT_TYPE does not work on  the
       PAM format code.

       pnm_whitexel()  and pnm_blackxel() return a white or black xel, respec-
       tively, for the given maxval and	format.

       pnm_invertxel() inverts an xel.

   INITIALIZATION
       pnm_init() is obsolete (at least	since Netpbm 9.25 (March 2002)).   Use
       pm_proginit() <libpm.html#initialization>  instead.

       pnm_init() is identical to pm_proginit.

   MEMORY MANAGEMENT
       pnm_allocarray()	allocates space	for an array of	xels.  pnm_freearray()
       frees an	array space allocated by pnm_allocarray() or pnm_readpnm().

       pnm_allocrow() allocates	space for a row	of a PNM image.	 pnm_freerow()
       frees it.

   READING PNM FILES
       pnm_readpnminit()  is  similar to pnm_readpaminit(), but	reads only PNM
       images and has a	different parameter list.

       pnm_readpnmrow()	is similar to pnm_readpamrow() but only	works  on  PNM
       images and has a	different parameter list and returns the row as	an ar-
       ray of xels instead of tuples.

       pnm_readpnm() is	similar	to pnm_readpam() except	that it	reads only PNM
       images and uses a different parameter list and returns an array of rows
       such that pnm_readpnmrow() would	return rather than such	that pnm_read-
       pamrow()	would return.

   WRITING FILES
       pnm_writepnminit()  is similar to pnm_writepaminit() except that	it can
       write only a PNM	header and has a different parameter list.

       forceplain is a binary value.  True (nonzero) means to write the	 image
       in  the	plain  (ASCII)	version	 of the	selected format.  False	(zero)
       means to	write it in the	raw (binary) version of	the  selected  format.
       See PNM format specification(5).

       pnm_writepnmrow()  is similar to	pnm_writepamrow() except that it works
       only on PNM images and has a different parameter	list and takes an  ar-
       ray of xels instead of an array of tuples.  See the description of for-
       ceplain	above.

       pnm_writepnm() is similar to pnm_writepam() except that it  works  only
       on  PNM	image,	has  a different parameter list, and takes an array of
       rows of xels instead of an array	of rows	of tuples.  See	 the  descrip-
       tion of forceplain above.

   FORMAT PROMOTION
       pnm_promoteformatrow()  promotes	a row of xels from one maxval and for-
       mat to a	new set.  Use this when	you are	combining multiple anymaps  of
       different  types	- just take the	maximum	of the maxvals and the maximum
       of the formats, and promote them	all to that.

       pnm_promoteformat() promotes an entire anymap.

   MISCELLANEOUS
       pnm_nextimage() positions a PNM input file to the next image in it  (so
       that a subsequent pnm_readpnminit() reads its header).

       pnm_nextimage() is analogous to pbm_nextimage(),	but works on PPM, PGM,
       and PBM files.

	pnm_check() is similar to pnm_checkpam() except	it works only  on  PNM
       images.

       pnm_check() is identical	to ppm_check().

       pnm_backgroundxelrow()  figures out an appropriate background xel based
       on the row of xels xelrow, which	is cols	xels wide, has maxval  maxval,
       and represents an image with format format.

       This  estimate  works best when the row is the top or bottom row	of the
       image.

       pnm_backgroundxel() does	the same thing as pnm_backgroundxelrow(),  ex-
       cept  based  on an entire image instead of just one row.	 This tends to
       do a slightly better job	than pnmbackgroundxelrow().

SEE ALSO
       Libnetpbm(3),  Libnetpbm	 User's	 Guide(3),   Libnetpbm	 Directory(1),
       pbm(5), pgm(5), ppm(5), pam(5), libpbm(3), libpgm(3), libppm(3)

AUTHOR
       Copyright (C) 1989, 1991	by Tony	Hansen and Jef Poskanzer.

DOCUMENT SOURCE
       This  manual  page was generated	by the Netpbm tool 'makeman' from HTML
       source.	The master documentation is at

	      http://netpbm.sourceforge.net/doc/libpnm.html

netpbm documentation	       8 SeptemberUser7manual for old pnm functions(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | AUTHOR | DOCUMENT SOURCE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=libpnm&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help