{
    "content": [
        {
            "type": "text",
            "text": "# fstopgm(1) (man)\n\n## TLDR\n\n> Convert a Usenix FaceSaver file into a PGM image.\n\n- Convert the specified Usenix FaceSaver file into a PGM image:\n  `fstopgm {{path/to/input.fs}} > {{path/to/output.pgm}}`\n\n*Source: tldr-pages*\n\n---\n\n**Summary:** fstopgm - convert a Usenix FaceSaver(tm) file into a portable graymap\n\n**Synopsis:** fstopgm [fsfile]\n\n## See Also\n\n- pgmtofs(1)\n- pgm(5)\n- pgmnorm(1)\n- pnmenlarge(1)\n- pnmscale(1)\n- pgmtopbm(1)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (2 lines)\n- **DESCRIPTION** (18 lines)\n- **SEE ALSO** (2 lines)\n- **AUTHOR** (5 lines)\n\n## Full Content\n\n### NAME\n\nfstopgm - convert a Usenix FaceSaver(tm) file into a portable graymap\n\n### SYNOPSIS\n\nfstopgm [fsfile]\n\n### DESCRIPTION\n\nReads a Usenix FaceSaver(tm) file as input.  Produces a portable graymap as output.\n\nFaceSaver(tm)  files  sometimes  have  rectangular pixels.  While fstopgm won't re-scale them\ninto square pixels for you, it will give you the precise pnmscale command that  will  do  the\njob.  Because of this, reading a FaceSaver(tm) image is a two-step process.  First you do:\nfstopgm > /dev/null\nThis  will  tell  you  whether you need to use pnmscale.  Then use one of the following pipe‐\nlines:\nfstopgm | pgmnorm\nfstopgm | pnmscale -whatever | pgmnorm\nTo go to PBM, you want something more like one of these:\nfstopgm | pnmenlarge 3 | pgmnorm | pgmtopbm\nfstopgm | pnmenlarge 3 | pnmscale <whatever> | pgmnorm | pgmtopbm\nYou want to enlarge when going to a bitmap because otherwise you lose  information;  but  en‐\nlarging by more than 3 does not look good.\n\nFaceSaver is a registered trademark of Metron Computerware Ltd. of Oakland, CA.\n\n### SEE ALSO\n\npgmtofs(1), pgm(5), pgmnorm(1), pnmenlarge(1), pnmscale(1), pgmtopbm(1)\n\n### AUTHOR\n\nCopyright (C) 1989 by Jef Poskanzer.\n\n\n\n06 April 89                                  fstopgm(1)\n\n"
        }
    ],
    "structuredContent": {
        "command": "fstopgm",
        "section": "1",
        "mode": "man",
        "summary": "fstopgm - convert a Usenix FaceSaver(tm) file into a portable graymap",
        "synopsis": "fstopgm [fsfile]",
        "tldr_summary": "Convert a Usenix FaceSaver file into a PGM image.",
        "tldr_examples": [
            {
                "description": "Convert the specified Usenix FaceSaver file into a PGM image",
                "command": "fstopgm {{path/to/input.fs}} > {{path/to/output.pgm}}"
            }
        ],
        "tldr_source": "official",
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "pgmtofs",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pgmtofs/1/json"
            },
            {
                "name": "pgm",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/pgm/5/json"
            },
            {
                "name": "pgmnorm",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pgmnorm/1/json"
            },
            {
                "name": "pnmenlarge",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmenlarge/1/json"
            },
            {
                "name": "pnmscale",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmscale/1/json"
            },
            {
                "name": "pgmtopbm",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pgmtopbm/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 18,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            }
        ]
    }
}