home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega A/V
/
mega_av.zip
/
mega_av
/
GRAPHUTL
/
PBMPLUS.ZIP
/
LIBPPM.MAN
< prev
next >
Wrap
Text File
|
1991-08-11
|
14KB
|
199 lines
libppm(3) Unix Programmer's Manual libppm(3)
NNNAAAMMMEEE
libppm - functions to support portable pixmap programs
SSSYYYNNNOOOPPPSSSIIISSS
#include <ppm.h>
cc ... libppm.a libpgm.a libpbm.a
DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN
typedef ... pixel;
typedef ... pixval;
#define PPM_MAXMAXVAL ...
extern pixval ppm_pbmmaxval;
EEEaaaccchhh pppiiixxxeeelll contains three pppiiixxxvvvaaallls, each of which should contain only the
values between 000 and PPPPPPMMM___MMMAAAXXXMMMAAAXXXVVVAAALLL. ppppppmmm___pppbbbmmmmmmaaaxxxvvvaaalll is the maxval used
when a PPM program reads a PBM file. Normally it is 1; however, for some
programs, a larger value gives better results.
#define PPM_FORMAT ...
#define RPPM_FORMAT ...
#define PPM_TYPE PPM_FORMAT
int PPM_FORMAT_TYPE( int format )
FFFooorrr dddiiissstttiiinnnggguuuiiissshhhiiinnnggg dddiiiffffffeeerrreeennnttt fffiiillleee fffooorrrmmmaaatttsss aaannnddd tttyyypppeeesss...
pppiiixxxvvvaaalll PPPPPPMMM___GGGEEETTTRRR((( pppiiixxxeeelll ppp )))
pppiiixxxvvvaaalll PPPPPPMMM___GGGEEETTTGGG((( pppiiixxxeeelll ppp )))
pppiiixxxvvvaaalll PPPPPPMMM___GGGEEETTTBBB((( pppiiixxxeeelll ppp )))
TTThhheeessseee ttthhhrrreeeeee mmmaaacccrrrooosss rrreeetttrrriiieeevvveee ttthhheee rrreeeddd,,, gggrrreeeeeennn ooorrr bbbllluuueee vvvaaallluuueee fffrrrooommm ttthhheee gggiiivvveeennn
pppiiixxxeeelll...
vvvoooiiiddd PPPPPPMMM___AAASSSSSSIIIGGGNNN((( pppiiixxxeeelll ppp,,, pppiiixxxvvvaaalll rrreeeddd,,, pppiiixxxvvvaaalll gggrrrnnn,,, pppiiixxxvvvaaalll bbbllluuu )))
TTThhhiiisss mmmaaacccrrrooo aaassssssiiigggnnnsss ttthhheee gggiiivvveeennn rrreeeddd,,, gggrrreeeeeennn aaannnddd bbbllluuueee vvvaaallluuueeesss tttooo ttthhheee pppiiixxxeeelll...
iiinnnttt PPPPPPMMM___EEEQQQUUUAAALLL((( pppiiixxxeeelll ppp,,, pppiiixxxeeelll qqq )))
TTThhhiiisss mmmaaacccrrrooo ccchhheeeccckkksss tttwwwooo pppiiixxxeeelllsss fffooorrr eeeqqquuuaaallliiitttyyy...
vvvoooiiiddd PPPPPPMMM___DDDEEEPPPTTTHHH((( pppiiixxxeeelll nnneeewwwppp,,, pppiiixxxeeelll ppp,,, pppiiixxxvvvaaalll ooollldddmmmaaaxxxvvvaaalll,,, pppiiixxxvvvaaalll nnneeewwwmmmaaaxxxvvvaaalll )))
TTThhhiiisss mmmaaacccrrrooo ssscccaaallleeesss ttthhheee cccooolllooorrrsss ooofff pppiiixxxeeelll ppp according the old and new maximum
values and assigns the new values to nnneeewwwppp. It is intended to make
writing ppmtowhatever easier.
float PPM_LUMIN( pixel p )
TTThhhiiisss mmmaaacccrrrooo dddeeettteeerrrmmmiiinnneeesss ttthhheee llluuummmiiinnnaaannnccceee ooofff ttthhheee pppiiixxxeeelll ppp.
pixel** ppm_allocarray( int cols, int rows )
AAAllllllooocccaaattteee aaannn aaarrrrrraaayyy ooofff pppiiixxxeeelllsss...
1
libppm(3) Unix Programmer's Manual libppm(3)
pppiiixxxeeelll*** ppppppmmm___aaallllllooocccrrrooowww((( iiinnnttt cccooolllsss )))
AAAllllllooocccaaattteee aaa rrrooowww ooofff ttthhheee gggiiivvveeennn nnnuuummmbbbeeerrr ooofff pppiiixxxeeelllsss...
vvvoooiiiddd ppppppmmm___fffrrreeeeeeaaarrrrrraaayyy((( pppiiixxxeeelll****** pppiiixxxeeelllsss,,, iiinnnttt rrrooowwwsss )))
FFFrrreeeeee ttthhheee aaarrrrrraaayyy aaallllllooocccaaattteeeddd wwwiiittthhh ppppppmmm___aaallllllooocccaaarrrrrraaayyy((())) containing the given
number of rows.
void pbm_freerow( pixel* pixelrow )
FFFrrreeeeee aaa rrrooowww ooofff pppiiixxxeeelllsss...
vvvoooiiiddd ppppppmmm___rrreeeaaadddppppppmmmiiinnniiittt((( FFFIIILLLEEE*** fffppp,,, iiinnnttt*** cccooolllsssPPP,,, iiinnnttt*** rrrooowwwsssPPP,,, pppiiixxxvvvaaalll*** mmmaaaxxxvvvaaalllPPP,,,
iiinnnttt*** fffooorrrmmmaaatttPPP )))
RRReeeaaaddd ttthhheee hhheeeaaadddeeerrr fffrrrooommm aaa PPPPPPMMM fffiiillleee,,, fffiiilllllliiinnnggg iiinnn ttthhheee rrrooowwwsss,,, cccooolllsss,,, mmmaaaxxxvvvaaalll aaannnddd
fffooorrrmmmaaattt vvvaaarrriiiaaabbbllleeesss...
vvvoooiiiddd ppppppmmm___rrreeeaaadddppppppmmmrrrooowww((( FFFIIILLLEEE*** fffppp,,, pppiiixxxeeelll*** pppiiixxxeeelllrrrooowww,,, iiinnnttt cccooolllsss,,, pppiiixxxvvvaaalll mmmaaaxxxvvvaaalll,,,
iiinnnttt fffooorrrmmmaaattt )))
RRReeeaaaddd aaa rrrooowww ooofff pppiiixxxeeelllsss iiinnntttooo ttthhheee pppiiixxxeeelllrrrooowww aaarrrrrraaayyy... FFFooorrrmmmaaattt,,, cccooolllsss,,, aaannnddd mmmaaaxxxvvvaaalll
wwweeerrreee fffiiilllllleeeddd iiinnn bbbyyy ppppppmmm___rrreeeaaadddppppppmmmiiinnniiittt((())).
pixel** ppm_readppm( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP )
RRReeeaaaddd aaannn eeennntttiiirrreee pppiiixxxmmmaaappp fffiiillleee iiinnntttooo mmmeeemmmooorrryyy,,, rrreeetttuuurrrnnniiinnnggg ttthhheee aaallllllooocccaaattteeeddd aaarrrrrraaayyy aaannnddd
fffiiilllllliiinnnggg iiinnn ttthhheee rrrooowwwsss,,, cccooolllsss aaannnddd mmmaaaxxxvvvaaalll vvvaaarrriiiaaabbbllleeesss... TTThhhiiisss fffuuunnnccctttiiiooonnn cccooommmbbbiiinnneeesss
ppppppmmm___rrreeeaaadddppppppmmmiiinnniiittt((())), ppppppmmm___aaallllllooocccaaarrrrrraaayyy((())) and ppppppmmm___rrreeeaaadddppppppmmmrrrooowww((())).
void ppm_writeppminit( FILE* fp, int cols, int rows, pixval maxval, int
forceplain )
WWWrrriiittteee ttthhheee hhheeeaaadddeeerrr fffooorrr aaa pppooorrrtttaaabbbllleee pppiiixxxmmmaaappp fffiiillleee... TTThhheee fffooorrrccceeeppplllaaaiiinnn ffflllaaaggg fffooorrrccceeesss
aaa ppplllaaaiiinnn-fffooorrrmmmaaattt fffiiillleee tttooo bbbeee wwwrrriiitttttteeennn,,, aaasss oooppppppooossseeeddd tttooo aaa rrraaawww-fffooorrrmmmaaattt ooonnneee...
vvvoooiiiddd ppppppmmm___wwwrrriiittteeeppppppmmmrrrooowww((( FFFIIILLLEEE*** fffppp,,, pppiiixxxeeelll*** pppiiixxxeeelllrrrooowww,,, iiinnnttt cccooolllsss,,, pppiiixxxvvvaaalll mmmaaaxxxvvvaaalll,,,
iiinnnttt fffooorrrccceeeppplllaaaiiinnn )))
WWWrrriiittteee aaa rrrooowww fffrrrooommm aaa pppooorrrtttaaabbbllleee pppiiixxxmmmaaappp...
vvvoooiiiddd ppppppmmm___wwwrrriiittteeeppppppmmm((( FFFIIILLLEEE*** fffppp,,, pppiiixxxeeelll****** pppiiixxxeeelllsss,,, iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss,,, pppiiixxxvvvaaalll
mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrccceeeppplllaaaiiinnn )))
WWWrrriiittteee ttthhheee hhheeeaaadddeeerrr aaannnddd aaallllll dddaaatttaaa fffooorrr aaa pppooorrrtttaaabbbllleee pppiiixxxmmmaaappp... TTThhhiiisss fffuuunnnccctttiiiooonnn
cccooommmbbbiiinnneeesss ppppppmmm___wwwrrriiittteeeppppppmmmiiinnniiittt((())) and ppppppmmm___wwwrrriiittteeeppppppmmmrrrooowww((())).
pixel ppm_parsecolor( char* colorname, pixval maxval )
PPPaaarrrssseeesss aaannn AAASSSCCCIIIIII cccooolllooorrr nnnaaammmeee iiinnntttooo aaa pppiiixxxeeelll... TTThhheee cccooolllooorrr cccaaannn bbbeee ssspppeeeccciiifffiiieeeddd iiinnn
ttthhhrrreeeeee wwwaaayyysss... OOOnnneee,,, aaasss aaa nnnaaammmeee,,, aaassssssuuummmiiinnnggg ttthhhaaattt aaa pppoooiiinnnttteeerrr tttooo aaannn XXX111111-ssstttyyyllleee
cccooolllooorrr nnnaaammmeeesss fffiiillleee wwwaaasss cccooommmpppiiillleeeddd iiinnn... TTTwwwooo,,, aaasss aaannn XXX111111-ssstttyyyllleee hhheeexxxiiidddeeeccciiimmmaaalll
nnnuuummmbbbeeerrr::: ###rrrgggbbb,,, ###rrrrrrggggggbbbbbb,,, ###rrrrrrrrrgggggggggbbbbbbbbb,,, ooorrr ###rrrrrrrrrrrrggggggggggggbbbbbbbbbbbb... TTThhhrrreeeeee,,, aaasss aaa tttrrriiipppllleeettt
ooofff dddeeeccciiimmmaaalll fffllloooaaatttiiinnnggg pppoooiiinnnttt nnnuuummmbbbeeerrrsss ssseeepppaaarrraaattteeeddd bbbyyy cccooommmmmmaaasss::: rrr...rrr,,,ggg...ggg,,,bbb...bbb...
2
libppm(3) Unix Programmer's Manual libppm(3)
ccchhhaaarrr*** ppppppmmm___cccooolllooorrrnnnaaammmeee((( pppiiixxxeeelll*** cccooolllooorrrPPP,,, pppiiixxxvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt hhheeexxxoookkk )))
RRReeetttuuurrrnnnsss aaa pppoooiiinnnttteeerrr tttooo aaa ssstttrrriiinnnggg dddeeessscccrrriiibbbiiinnnggg ttthhheee gggiiivvveeennn cccooolllooorrr... IIIfff ttthhheee XXX111111
cccooolllooorrr nnnaaammmeeesss fffiiillleee iiisss aaavvvaaaiiilllaaabbbllleee aaannnddd ttthhheee cccooolllooorrr aaappppppeeeaaarrrsss iiinnn iiittt,,, ttthhhaaattt nnnaaammmeee iiisss
rrreeetttuuurrrnnneeeddd... OOOttthhheeerrrwwwiiissseee,,, iiifff ttthhheee hhheeexxxoookkk ffflllaaaggg iiisss tttrrruuueee ttthhheeennn aaa hhheeexxxiiidddeeeccciiimmmaaalll
cccooolllooorrrssspppeeeccc iiisss rrreeetttuuurrrnnneeeddd;;; iiifff hhheeexxxoookkk iiisss fffaaalllssseee aaannnddd ttthhheee XXX111111 cccooolllooorrr nnnaaammmeeesss fffiiillleee iiisss
aaavvvaaaiiilllaaabbbllleee,,, ttthhheeennn ttthhheee ccclllooossseeesssttt mmmaaatttccchhhiiinnnggg cccooolllooorrr iiisss rrreeetttuuurrrnnneeeddd;;; ooottthhheeerrrwwwiiissseee,,, iiittt'''sss
aaannn eeerrrrrrooorrr...
SSSEEEEEE AAALLLSSSOOO
pbm(3), pgm(3)
AAAUUUTTTHHHOOORRR
Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
3