home *** CD-ROM | disk | FTP | other *** search
Wrap
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