{
    "mode": "man",
    "parameter": "pamstretch",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/pamstretch/1/json",
    "generated": "2026-08-10T19:16:42Z",
    "synopsis": "",
    "sections": {
        "NAME": {
            "content": "pamstretch - scale up a PNM or PAM image by interpolating between pixels.\n\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "",
            "subsections": [
                {
                    "name": "pamstretch",
                    "content": "[-xscale=X]\n\n[-yscale=Y] [-blackedge]\n\n[-dropedge]\n\nN\n\n[infile]\n\nYou  can use the minimum unique abbreviation of the options.  You can use two hyphens instead\nof one.  You can separate an option name from its value with white space instead of an equals\nsign.\n\n"
                }
            ]
        },
        "DESCRIPTION": {
            "content": "This program is part of Netpbm(1).\n\npamstretch  scales up pictures by integer values, either vertically, horizontally,  or  both.\npamstretch   differs from pamscale and pamenlarge in that when it inserts the additional rows\nand columns, instead of making the new row or column a copy of its neighbor, pamstretch makes\nthe new row or column an interpolation between its neighbors.  In some images, this  produces\nbetter looking output.\n\nTo scale up to non-integer pixel sizes, e.g. 2.5, try pamstretch-gen(1) instead.\n\nOptions let you select alternative methods of dealing with the right/bottom edges of the pic‐\nture.   Since the interpolation is done between the top-left corners of the scaled-up pixels,\nit's not obvious what to do with the right/bottom edges.  The default behaviour is  to  scale\nthose  up  without  interpolation (more precisely, the right edge is only interpolated verti‐\ncally, and the bottom edge is only interpolated horizontally), but there are two other possi‐\nbilities, selected by the -blackedge and -dropedge options.\n\nIn the special case that the stretch factor is 1, there is no issue with the right and bottom\nedges, the edges of the output are  identical  to  the  edges  of  the  input  regardless  of",
            "subsections": [
                {
                    "name": "-blackedge   -dropedge -dropedge",
                    "content": "the edge to be dropped even where the stretch factor was 1.\n\n\n"
                }
            ]
        },
        "PARAMETERS": {
            "content": "The N parameter is the scale factor.  It is valid  only  if  you  don't  specify  -xscale  or",
            "subsections": [
                {
                    "name": "-yscale",
                    "content": "Before Netpbm 10.86 (March 2019), 1 was not a valid value.\n\n\n"
                }
            ]
        },
        "OPTIONS": {
            "content": "In  addition  to  the options common to all programs based on libnetpbm (most notably -quiet,\nsee \u001b]8;;index.html#commonoptions\u001b\\ Common Options\u001b]8;;\u001b\\ ), pamstretch recognizes the following command line options:\n\n\n",
            "subsections": [
                {
                    "name": "-xscale=_",
                    "content": "This is the horizontal scale factor.  If you don't specify this, but do specify a ver‐\ntical scale factor, the horizontal scale factor is 1.\n\nThis option was new in Netpbm 9.21 (December 2001).\n\n"
                },
                {
                    "name": "-yscale=_",
                    "content": "This is the vertical scale factor.  If you don't specify this, but do specify a  hori‐\nzontal scale factor, the vertical scale factor is 1.\n\nThis option was new in Netpbm 9.21 (December 2001).\n\n"
                },
                {
                    "name": "-blackedge",
                    "content": "interpolate to black at right/bottom edges.\n\n"
                },
                {
                    "name": "-dropedge",
                    "content": "drop  one (source) pixel at right/bottom edges. This is arguably more logical than the\ndefault behaviour, but it means producing output which is a slightly odd size.\n\n\n\n"
                }
            ]
        },
        "LIMITATIONS": {
            "content": "Usually produces fairly ugly output for PBMs. For most PBM input you'll probably want to  re‐\nduce the `noise' first using something like pnmnlfilt(1).\n\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "pamstretch-gen(1), pamenlarge(1), pamscale(1), pnmnlfilt(1)\n\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Russell Marks (russell.marks@ntlworld.com).\n",
            "subsections": []
        },
        "DOCUMENT SOURCE": {
            "content": "This  manual  page  was  generated by the Netpbm tool 'makeman' from HTML source.  The master\ndocumentation is at\n\nhttp://netpbm.sourceforge.net/doc/pamstretch.html\n\nnetpbm documentation                      02 February 2019                 Pamstretch User Manual(1)",
            "subsections": []
        }
    },
    "summary": "pamstretch - scale up a PNM or PAM image by interpolating between pixels.",
    "flags": [
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "This is the horizontal scale factor. If you don't specify this, but do specify a ver‐ tical scale factor, the horizontal scale factor is 1. This option was new in Netpbm 9.21 (December 2001)."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "This is the vertical scale factor. If you don't specify this, but do specify a hori‐ zontal scale factor, the vertical scale factor is 1. This option was new in Netpbm 9.21 (December 2001)."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "interpolate to black at right/bottom edges."
        },
        {
            "flag": "",
            "long": null,
            "arg": null,
            "description": "drop one (source) pixel at right/bottom edges. This is arguably more logical than the default behaviour, but it means producing output which is a slightly odd size."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "pamstretch-gen",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/pamstretch-gen/1/json"
        },
        {
            "name": "pamenlarge",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/pamenlarge/1/json"
        },
        {
            "name": "pamscale",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/pamscale/1/json"
        },
        {
            "name": "pnmnlfilt",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/pnmnlfilt/1/json"
        }
    ],
    "tldr": {
        "source": "official",
        "description": "Scale up a PAM image by interpolating between pixels.",
        "examples": [
            {
                "description": "Scale up a PAM image by an integer factor",
                "command": "pamstretch {{n}} {{path/to/image.pam}} > {{path/to/output.pam}}"
            },
            {
                "description": "Scale up a PAM image by the specified factors in the horizontal and vertical directions",
                "command": "pamstretch {{-x|-xscale}} {{xn}} {{-y|-yscale}} {{yn}} {{path/to/image.pam}} > {{path/to/output.pam}}"
            }
        ]
    }
}