{
    "content": [
        {
            "type": "text",
            "text": "# ppmshift (man)\n\n## NAME\n\nppmshift - shift lines of a portable pixmap left or right by a random amount\n\n## SYNOPSIS\n\nppmshift shift [ppmfile]\n\n## DESCRIPTION\n\nReads  a  portable  pixmap as input. Shifts every row of image data to the left or right by a\ncertain amount. The 'shift' parameter determines by how many pixels a row is to be shifted at\nmost.\n\n## TLDR\n\n> Shift the lines in a PPM image by a randomized amount.\n\n- Shift the lines in the input image by a randomized amount not exceeding s to the left or to the right:\n  `ppmshift {{s}} {{path/to/input_file.ppm}} > {{path/to/output_file.ppm}}`\n\n*Source: tldr-pages*\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **EXAMPLE**\n- **SEE ALSO**\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "ppmshift",
        "section": "",
        "mode": "man",
        "summary": "ppmshift - shift lines of a portable pixmap left or right by a random amount",
        "synopsis": "ppmshift shift [ppmfile]",
        "tldr_summary": "Shift the lines in a PPM image by a randomized amount.",
        "tldr_examples": [
            {
                "description": "Shift the lines in the input image by a randomized amount not exceeding s to the left or to the right",
                "command": "ppmshift {{s}} {{path/to/input_file.ppm}} > {{path/to/output_file.ppm}}"
            }
        ],
        "tldr_source": "official",
        "flags": [],
        "examples": [
            "Check  this  out:  Save  your favourite model's picture from something like alt.binaries.pic‐",
            "tures.supermodels (ok, or from any other picture source), convert it to ppm, and  process  it",
            "e.g. like this, assuming the picture is 800x600 pixels:",
            "# take the upper half, and leave it like it is",
            "pnmcut 0 0 800 300 cs.ppm >upper.ppm",
            "# take the lower half, flip it upside down, dim it and distort it a little",
            "pnmcut 0 300 800 300 cs.ppm | pnmflip -tb | ppmdim 0.7 |",
            "ppmshift 10 >lower.ppm",
            "# and concatenate the two pieces",
            "pnmcat -tb upper.ppm lower.ppm >newpic.ppm",
            "The  resulting  picture  looks  like the image being reflected on a water surface with slight",
            "ripples."
        ],
        "see_also": [
            {
                "name": "ppm",
                "section": "5",
                "url": "https://www.chedong.com/phpMan.php/man/ppm/5/json"
            },
            {
                "name": "pnmcut",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmcut/1/json"
            },
            {
                "name": "pnmflip",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmflip/1/json"
            },
            {
                "name": "ppmdim",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/ppmdim/1/json"
            },
            {
                "name": "pnmcat",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmcat/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "EXAMPLE",
                "lines": 15,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "ppmshift - shift lines of a portable pixmap left or right by a random amount\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "ppmshift shift [ppmfile]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Reads  a  portable  pixmap as input. Shifts every row of image data to the left or right by a\ncertain amount. The 'shift' parameter determines by how many pixels a row is to be shifted at\nmost.\n\nAnother  one  of those effects I intended to use for MPEG tests.  Unfortunately, this program\nwill not help me here - it creates too random patterns to be used for animations.  Still,  it\nmight give interesting results on still images.\n",
                "subsections": []
            },
            "EXAMPLE": {
                "content": "Check  this  out:  Save  your favourite model's picture from something like alt.binaries.pic‐\ntures.supermodels (ok, or from any other picture source), convert it to ppm, and  process  it\ne.g. like this, assuming the picture is 800x600 pixels:\n# take the upper half, and leave it like it is\npnmcut 0 0 800 300 cs.ppm >upper.ppm\n\n# take the lower half, flip it upside down, dim it and distort it a little\npnmcut 0 300 800 300 cs.ppm | pnmflip -tb | ppmdim 0.7 |\nppmshift 10 >lower.ppm\n\n# and concatenate the two pieces\npnmcat -tb upper.ppm lower.ppm >newpic.ppm\nThe  resulting  picture  looks  like the image being reflected on a water surface with slight\nripples.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1)\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Copyright (C) 1993 by Frank Neumann\n\n\n\n16 November 1993                               ppmshift(1)",
                "subsections": []
            }
        }
    }
}