{
    "content": [
        {
            "type": "text",
            "text": "# pnmshear (man)\n\n## NAME\n\npnmshear - shear a portable anymap by some angle\n\n## SYNOPSIS\n\npnmshear [-noantialias] angle [pnmfile]\n\n## DESCRIPTION\n\nReads  a  portable anymap as input.  Shears it by the specified angle and produces a portable\nanymap as output.  If the input file is in color, the output will be too, otherwise  it  will\nbe grayscale.  The angle is in degrees (floating point), and measures this:\n+-------+  +-------+\n|       |  |\\       \\\n|  OLD  |  | \\  NEW  \\\n|       |  |an\\       \\\n+-------+  |gle+-------+\nIf the angle is negative, it shears the other way:\n+-------+  |-an+-------+\n|       |  |gl/       /\n|  OLD  |  |e/  NEW  /\n|       |  |/       /\n+-------+  +-------+\nThe angle should not get too close to 90 or -90, or the resulting anymap will be unreasonably\nwide.\n\n## TLDR\n\n> Shear a PNM image.\n\n- Shear a PNM image by the specified angle:\n  `pnmshear {{angle}} {{path/to/input.pnm}} > {{path/to/output.pnm}}`\n- Specify the color of the background in the sheared image:\n  `pnmshear {{-b|-background}} {{blue}} {{angle}} {{path/to/input.pnm}} > {{path/to/output.pnm}}`\n- Do not perform anti-aliasing:\n  `pnmshear {{-n|-noantialias}} {{angle}} {{path/to/input.pnm}} > {{path/to/output.pnm}}`\n\n*Source: tldr-pages*\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION** (1 subsections)\n- **SEE ALSO**\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "pnmshear",
        "section": "",
        "mode": "man",
        "summary": "pnmshear - shear a portable anymap by some angle",
        "synopsis": "pnmshear [-noantialias] angle [pnmfile]",
        "tldr_summary": "Shear a PNM image.",
        "tldr_examples": [
            {
                "description": "Shear a PNM image by the specified angle",
                "command": "pnmshear {{angle}} {{path/to/input.pnm}} > {{path/to/output.pnm}}"
            },
            {
                "description": "Specify the color of the background in the sheared image",
                "command": "pnmshear {{-b|-background}} {{blue}} {{angle}} {{path/to/input.pnm}} > {{path/to/output.pnm}}"
            },
            {
                "description": "Do not perform anti-aliasing",
                "command": "pnmshear {{-n|-noantialias}} {{angle}} {{path/to/input.pnm}} > {{path/to/output.pnm}}"
            }
        ],
        "tldr_source": "official",
        "flags": [
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "If you want anti-aliasing and don't care about the precise colors, but still need a limited *number* of colors, you can run the result through ppmquant. All flags can be abbreviated to their shortest unique prefix."
            }
        ],
        "examples": [],
        "see_also": [
            {
                "name": "pnmrotate",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmrotate/1/json"
            },
            {
                "name": "pnmflip",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmflip/1/json"
            },
            {
                "name": "pnm",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/pnm/5/json"
            },
            {
                "name": "ppmquant",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/ppmquant/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 21,
                "subsections": [
                    {
                        "name": "-noantialias",
                        "lines": 5
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "pnmshear - shear a portable anymap by some angle\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "pnmshear [-noantialias] angle [pnmfile]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Reads  a  portable anymap as input.  Shears it by the specified angle and produces a portable\nanymap as output.  If the input file is in color, the output will be too, otherwise  it  will\nbe grayscale.  The angle is in degrees (floating point), and measures this:\n+-------+  +-------+\n|       |  |\\       \\\n|  OLD  |  | \\  NEW  \\\n|       |  |an\\       \\\n+-------+  |gle+-------+\nIf the angle is negative, it shears the other way:\n+-------+  |-an+-------+\n|       |  |gl/       /\n|  OLD  |  |e/  NEW  /\n|       |  |/       /\n+-------+  +-------+\nThe angle should not get too close to 90 or -90, or the resulting anymap will be unreasonably\nwide.\n\nThe shearing is implemented by looping over the source pixels and distributing  fractions  to\neach  of the destination pixels.  This has an \"anti-aliasing\" effect - it avoids jagged edges\nand similar artifacts.  However, it also means that the original colors or gray levels in the\nimage  are  modified.   If you need to keep precisely the same set of colors, you can use the",
                "subsections": [
                    {
                        "name": "-noantialias",
                        "content": "If  you  want anti-aliasing and don't care about the precise colors, but still need a limited\n*number* of colors, you can run the result through ppmquant.\n\nAll flags can be abbreviated to their shortest unique prefix.\n"
                    }
                ]
            },
            "SEE ALSO": {
                "content": "pnmrotate(1), pnmflip(1), pnm(5), ppmquant(1)\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Copyright (C) 1989, 1991 by Jef Poskanzer.\n\n\n\n12 January 1991                               pnmshear(1)",
                "subsections": []
            }
        }
    }
}