home *** CD-ROM | disk | FTP | other *** search
Wrap
libpnm(3) Unix Programmer's Manual libpnm(3) NNNAAAMMMEEE libpnm - functions to support portable anymap programs SSSYYYNNNOOOPPPSSSIIISSS #include <pnm.h> cc ... libpnm.a libppm.a libpgm.a libpbm.a DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN typedef ... xel; typedef ... xelval; #define PNM_MAXMAXVAL ... extern xelval pnm_pbmmaxval; EEEaaaccchhh xxxeeelll contains three xxxeeelllvvvaaallls, each of which should contain only the values between 000 and PPPNNNMMM___MMMAAAXXXMMMAAAXXXVVVAAALLL. pppnnnmmm___pppbbbmmmmmmaaaxxxvvvaaalll is the maxval used when a PNM program reads a PBM file. Normally it is 1; however, for some programs, a larger value gives better results. xelval PNM_GET1( xel x ) TTThhhiiisss mmmaaacccrrrooo eeexxxtttrrraaaccctttsss aaa sssiiinnngggllleee vvvaaallluuueee fffrrrooommm aaannn xxxeeelll,,, wwwhhheeennn yyyooouuu kkknnnooowww iiittt'''sss fffrrrooommm aaa PPPBBBMMM ooorrr PPPGGGMMM fffiiillleee... WWWhhheeennn iiittt'''sss fffrrrooommm aaa PPPPPPMMM fffiiillleee,,, uuussseee PPPPPPMMM___GGGEEETTTRRR((())), PPPPPPMMM___GGGEEETTTGGG((())), and PPPPPPMMM___GGGEEETTTBBB((())). void PNM_ASSIGN1( xel x, xelval v ) TTThhhiiisss mmmaaacccrrrooo aaassssssiiigggnnnsss aaa sssiiinnngggllleee vvvaaallluuueee tttooo aaannn xxxeeelll,,, wwwhhheeennn yyyooouuu kkknnnooowww iiittt'''sss fffrrrooommm aaa PPPBBBMMM ooorrr PPPGGGMMM fffiiillleee... WWWhhheeennn iiittt'''sss fffrrrooommm aaa PPPPPPMMM fffiiillleee,,, uuussseee PPPPPPMMM___AAASSSSSSIIIGGGNNN((())). int PNM_EQUAL( xel x, xel y ) TTThhhiiisss mmmaaacccrrrooo ccchhheeeccckkksss tttwwwooo xxxeeelllsss fffooorrr eeeqqquuuaaallliiitttyyy... iiinnnttt PPPNNNMMM___FFFOOORRRMMMAAATTT___TTTYYYPPPEEE((( iiinnnttt fffooorrrmmmaaattt ))) FFFooorrr dddiiissstttiiinnnggguuuiiissshhhiiinnnggg dddiiiffffffeeerrreeennnttt fffiiillleee tttyyypppeeesss... vvvoooiiiddd pppnnnmmm___iiinnniiittt((( iiinnnttt*** aaarrrgggcccPPP,,, ccchhhaaarrr*** aaarrrgggvvv[[[]]] ))) AAAllllll PPPNNNMMM ppprrrooogggrrraaammmsss mmmuuusssttt cccaaallllll ttthhhiiisss rrrooouuutttiiinnneee... xxxeeelll****** pppnnnmmm___aaallllllooocccaaarrrrrraaayyy((( iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss ))) AAAllllllooocccaaattteee aaannn aaarrrrrraaayyy ooofff xxxeeelllsss... xxxeeelll*** pppnnnmmm___aaallllllooocccrrrooowww((( iiinnnttt cccooolllsss ))) AAAllllllooocccaaattteee aaa rrrooowww ooofff ttthhheee gggiiivvveeennn nnnuuummmbbbeeerrr ooofff xxxeeelllsss... vvvoooiiiddd pppnnnmmm___fffrrreeeeeeaaarrrrrraaayyy((( xxxeeelll****** xxxeeelllsss,,, iiinnnttt rrrooowwwsss ))) FFFrrreeeeee ttthhheee aaarrrrrraaayyy aaallllllooocccaaattteeeddd wwwiiittthhh pppnnnmmm___aaallllllooocccaaarrrrrraaayyy((())) containing the given number of rows. 1 libpnm(3) Unix Programmer's Manual libpnm(3) void pnm_freerow( xel* xelrow ) FFFrrreeeeee aaa rrrooowww ooofff xxxeeelllsss... vvvoooiiiddd pppnnnmmm___rrreeeaaadddpppnnnmmmiiinnniiittt((( FFFIIILLLEEE*** fffppp,,, iiinnnttt*** cccooolllsssPPP,,, iiinnnttt*** rrrooowwwsssPPP,,, xxxeeelllvvvaaalll*** mmmaaaxxxvvvaaalllPPP,,, iiinnnttt*** fffooorrrmmmaaatttPPP ))) RRReeeaaaddd ttthhheee hhheeeaaadddeeerrr fffrrrooommm aaa PPPNNNMMM fffiiillleee,,, fffiiilllllliiinnnggg iiinnn ttthhheee rrrooowwwsss,,, cccooolllsss,,, mmmaaaxxxvvvaaalll aaannnddd fffooorrrmmmaaattt vvvaaarrriiiaaabbbllleeesss... vvvoooiiiddd pppnnnmmm___rrreeeaaadddpppnnnmmmrrrooowww((( FFFIIILLLEEE*** fffppp,,, xxxeeelll*** xxxeeelllrrrooowww,,, iiinnnttt cccooolllsss,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt ))) RRReeeaaaddd aaa rrrooowww ooofff xxxeeelllsss iiinnntttooo ttthhheee xxxeeelllrrrooowww aaarrrrrraaayyy... FFFooorrrmmmaaattt,,, cccooolllsss,,, aaannnddd mmmaaaxxxvvvaaalll wwweeerrreee fffiiilllllleeeddd iiinnn bbbyyy pppnnnmmm___rrreeeaaadddpppnnnmmmiiinnniiittt((())). xel** pnm_readpnm( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP ) RRReeeaaaddd aaannn eeennntttiiirrreee aaannnyyymmmaaappp fffiiillleee iiinnntttooo mmmeeemmmooorrryyy,,, rrreeetttuuurrrnnniiinnnggg ttthhheee aaallllllooocccaaattteeeddd aaarrrrrraaayyy aaannnddd fffiiilllllliiinnnggg iiinnn ttthhheee rrrooowwwsss,,, cccooolllsss,,, mmmaaaxxxvvvaaalll,,, aaannnddd fffooorrrmmmaaattt vvvaaarrriiiaaabbbllleeesss... TTThhhiiisss fffuuunnnccctttiiiooonnn cccooommmbbbiiinnneeesss pppnnnmmm___rrreeeaaadddpppnnnmmmiiinnniiittt((())), pppnnnmmm___aaallllllooocccaaarrrrrraaayyy((())) and pppnnnmmm___rrreeeaaadddpppnnnmmmrrrooowww((())). Unlike the equivalent functions in PBM, PGM, and PPM, it returns the format so you can tell what type the file is. void pnm_writepnminit( FILE* fp, int cols, int rows, xelval maxval, int format, int forceplain ) WWWrrriiittteee ttthhheee hhheeeaaadddeeerrr fffooorrr aaa pppooorrrtttaaabbbllleee aaannnyyymmmaaappp fffiiillleee... UUUnnnllliiikkkeee ttthhheee eeeqqquuuiiivvvaaallleeennnttt fffuuunnnccctttiiiooonnnsss iiinnn PPPBBBMMM,,, PPPGGGMMM,,, aaannnddd PPPPPPMMM,,, yyyooouuu hhhaaavvveee tttooo ssspppeeeccciiifffyyy ttthhheee ooouuutttpppuuuttt tttyyypppeee... TTThhheee fffooorrrccceeeppplllaaaiiinnn ffflllaaaggg fffooorrrccceeesss aaa ppplllaaaiiinnn-fffooorrrmmmaaattt fffiiillleee tttooo bbbeee wwwrrriiitttttteeennn,,, aaasss oooppppppooossseeeddd tttooo aaa rrraaawww-fffooorrrmmmaaattt ooonnneee... vvvoooiiiddd pppnnnmmm___wwwrrriiittteeepppnnnmmmrrrooowww((( FFFIIILLLEEE*** fffppp,,, xxxeeelll*** xxxeeelllrrrooowww,,, iiinnnttt cccooolllsss,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt,,, iiinnnttt fffooorrrccceeeppplllaaaiiinnn ))) WWWrrriiittteee aaa rrrooowww fffrrrooommm aaa pppooorrrtttaaabbbllleee aaannnyyymmmaaappp... vvvoooiiiddd pppnnnmmm___wwwrrriiittteeepppnnnmmm((( FFFIIILLLEEE*** fffppp,,, xxxeeelll****** xxxeeelllsss,,, iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt,,, iiinnnttt fffooorrrccceeeppplllaaaiiinnn ))) WWWrrriiittteee ttthhheee hhheeeaaadddeeerrr aaannnddd aaallllll dddaaatttaaa fffooorrr aaa pppooorrrtttaaabbbllleee aaannnyyymmmaaappp... TTThhhiiisss fffuuunnnccctttiiiooonnn cccooommmbbbiiinnneeesss pppnnnmmm___wwwrrriiittteeepppnnnmmmiiinnniiittt((())) and pppnnnmmm___wwwrrriiittteeepppnnnmmmrrrooowww((())). void pnm_promoteformatrow( xel* xelrow, int cols, xelval maxval, int format, xelval newmaxval, int newformat ) PPPrrrooommmooottteee aaa rrrooowww ooofff xxxeeelllsss fffrrrooommm ooonnneee mmmaaaxxxvvvaaalll aaannnddd fffooorrrmmmaaattt tttooo aaa nnneeewww ssseeettt... UUUssseeeddd wwwhhheeennn cccooommmbbbiiinnniiinnnggg mmmuuullltttiiipppllleee aaannnyyymmmaaapppsss ooofff dddiiiffffffeeerrreeennnttt tttyyypppeeesss --- jjjuuusssttt tttaaakkkeee ttthhheee mmmaaaxxx ooofff ttthhheee mmmaaaxxxvvvaaalllsss aaannnddd ttthhheee mmmaaaxxx ooofff ttthhheee fffooorrrmmmaaatttsss,,, aaannnddd ppprrrooommmooottteee ttthhhaaammm aaallllll tttooo ttthhhaaattt... vvvoooiiiddd pppnnnmmm___ppprrrooommmooottteeefffooorrrmmmaaattt((( xxxeeelll****** xxxeeelllsss,,, iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt,,, xxxeeelllvvvaaalll nnneeewwwmmmaaaxxxvvvaaalll,,, iiinnnttt nnneeewwwfffooorrrmmmaaattt ))) PPPrrrooommmooottteee aaannn eeennntttiiirrreee aaannnyyymmmaaappp... 2 libpnm(3) Unix Programmer's Manual libpnm(3) xxxeeelll pppnnnmmm___wwwhhhiiittteeexxxeeelll((( xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt ))) xxxeeelll pppnnnmmm___bbblllaaaccckkkxxxeeelll((( xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt ))) RRReeetttuuurrrnnn aaa wwwhhhiiittteee ooorrr bbblllaaaccckkk xxxeeelll fffooorrr ttthhheee gggiiivvveeennn mmmaaaxxxvvvaaalll aaannnddd fffooorrrmmmaaattt... vvvoooiiiddd pppnnnmmm___iiinnnvvveeerrrtttxxxeeelll((( xxxeeelll*** xxx,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt ))) IIInnnvvveeerrrttt aaannn xxxeeelll... xxxeeelll pppnnnmmm___bbbaaaccckkkgggrrrooouuunnndddxxxeeelllrrrooowww((( xxxeeelll*** xxxeeelllrrrooowww,,, iiinnnttt cccooolllsss,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt ))) FFFiiiggguuurrreee ooouuuttt aaannn aaapppppprrroooppprrriiiaaattteee bbbaaaccckkkgggrrrooouuunnnddd xxxeeelll bbbaaassseeeddd ooonnn ttthhhiiisss rrrooowww... xxxeeelll pppnnnmmm___bbbaaaccckkkgggrrrooouuunnndddxxxeeelll((( xxxeeelll****** xxxeeelllsss,,, iiinnnttt cccooolllsss,,, iiinnnttt rrrooowwwsss,,, xxxeeelllvvvaaalll mmmaaaxxxvvvaaalll,,, iiinnnttt fffooorrrmmmaaattt ))) FFFiiiggguuurrreee ooouuuttt aaa bbbaaaccckkkgggrrrooouuunnnddd xxxeeelll bbbaaassseeeddd ooonnn aaannn eeennntttiiirrreee aaannnyyymmmaaappp... TTThhhiiisss cccaaannn dddooo aaa sssllliiiggghhhtttlllyyy bbbeeetttttteeerrr jjjooobbb ttthhhaaannn pppnnnmmm___bbbaaaccckkkgggrrrooouuunnndddxxxeeelllrrrooowww((())). SSSEEEEEE AAALLLSSSOOO pbm(3), pgm(3), ppm(3) AAAUUUTTTHHHOOORRR Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer. 3