{
    "content": [
        {
            "type": "text",
            "text": "# pamcat (man)\n\n## NAME\n\npamcat - concatenate Netpbm images\n\n## DESCRIPTION\n\nThis program is part of Netpbm(1).\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS** (1 subsections)\n- **DESCRIPTION** (1 subsections)\n- **OPTIONS** (14 subsections)\n- **SEE ALSO**\n- **HISTORY**\n- **DOCUMENT SOURCE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "pamcat",
        "section": "",
        "mode": "man",
        "summary": "pamcat - concatenate Netpbm images",
        "synopsis": "",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Combine images vertically, top to bottom."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Combine images horizontally, left to right. You must specify the direction by specifying one of the above. You cannot specify both."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Left-justify images in a top-bottom concatenation. You cannot specify this with -jright This option is invalid in a left-right concatenation."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Right-justify images in a top-bottom concatenation. You cannot specify this with -jleft This option is invalid in a left-right concatenation."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Top-justify images in a left-right concatenation. You cannot specify this with -jbottom This option is invalid in a top-bottom concatenation."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Bottom-justify images in a left-right concatenation. You cannot specify this with -jtop This option is invalid in a top-bottom concatenation."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "Center images (valid for both left-right and top-bottom concatenations). This is the default. By default, pamcat centers the smaller images. -topbottom -jleft would stack the images on top of each other, flush with the left edge. -leftright -jbottom would line up the images left to right with their bottom edges aligned as if sitting on a table."
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "You may not specify this with -black"
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "You may not specify this with -white"
            },
            {
                "flag": "",
                "long": null,
                "arg": null,
                "description": "This specifies the name of a file that contains the list of input files. Option value - means the list comes from Standard Input. The file contains one file name per newline-delimited line in whatever code the system fopen service expects. You may omit the newline on the last line. Empty lines are ignored. There is no mechanism for including comments in the list (so if you want to have a commented list, preprocess it to remove comments before supplying it to pamcat). You may not specify file names as command line arguments together with -listfile You may not list more files than than your system's limit on the number of concurrently open files by one process. 16 is a typical number for that. This option was new in Netpbm 11.01 (December 2022)."
            }
        ],
        "examples": [],
        "see_also": [
            {
                "name": "pamundice",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pamundice/1/json"
            },
            {
                "name": "pamdice",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pamdice/1/json"
            },
            {
                "name": "pnmtile",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnmtile/1/json"
            },
            {
                "name": "pamcut",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pamcut/1/json"
            },
            {
                "name": "pnm",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pnm/1/json"
            },
            {
                "name": "pam",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/pam/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "pamcat",
                        "lines": 13
                    }
                ]
            },
            {
                "name": "DESCRIPTION",
                "lines": 58,
                "subsections": [
                    {
                        "name": "-listfile",
                        "lines": 13
                    }
                ]
            },
            {
                "name": "OPTIONS",
                "lines": 4,
                "subsections": [
                    {
                        "name": "Direction",
                        "lines": 1
                    },
                    {
                        "name": "-topbottom -tb",
                        "lines": 3
                    },
                    {
                        "name": "-leftright -lr",
                        "lines": 8
                    },
                    {
                        "name": "Justification",
                        "lines": 1
                    },
                    {
                        "name": "-jleft",
                        "lines": 7
                    },
                    {
                        "name": "-jright",
                        "lines": 7
                    },
                    {
                        "name": "-jtop",
                        "lines": 7
                    },
                    {
                        "name": "-jbottom",
                        "lines": 7
                    },
                    {
                        "name": "-jcenter",
                        "lines": 12
                    },
                    {
                        "name": "Padding Color",
                        "lines": 5
                    },
                    {
                        "name": "-white",
                        "lines": 2
                    },
                    {
                        "name": "-black",
                        "lines": 5
                    },
                    {
                        "name": "Miscellaneous",
                        "lines": 1
                    },
                    {
                        "name": "-listfile= -",
                        "lines": 21
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "HISTORY",
                "lines": 20,
                "subsections": []
            },
            {
                "name": "DOCUMENT SOURCE",
                "lines": 6,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "pamcat - concatenate Netpbm images\n\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "",
                "subsections": [
                    {
                        "name": "pamcat",
                        "content": "{-leftright | -lr | -topbottom | -tb}\n\n[-white|-black]\n\n[-jtop|-jbottom|-jcenter] [-jleft|-jright|-jcenter]\n\n[netpbmfile ... | -listfile={filename|-}]\n\nMinimum  unique  abbreviation of option is acceptable.  You may use double hyphens instead of\nsingle hyphen to denote options.  You may use white space in place of the equals sign to sep‐\narate an option name from its value.\n\n"
                    }
                ]
            },
            "DESCRIPTION": {
                "content": "This program is part of Netpbm(1).\n\npamcat reads one or more Netpbm images as input, concatenates them either left  to  right  or\ntop to bottom, and produces a single Netpbm image as output.\n\nOptions -leftright and -topbottom determine the direction\nof the concatenation.\n\n\nThe images do not have to be the same shape:  You can concatenate images\nof different widths top to bottom and of different heights left to right.\nYou can concatenate images of different depths (numbers of planes).  You\ncan concatenate a PBM image with a PPM image.  Et cetera.\n\nThe format of the output image is the highest of the formats of the\ninput images, in the order PBM, PGM, PPM, PAM.\n\nFor PAM output, if all of the input images have the same tuple type\n(including implied tuple types of PNM images), that is the tuple type of the\noutput.  If the inputs differ, but are all visual tuple types, the\noutput's tuple type is the most primitive that can represent all the\ninput.  E.g. if inputs are GRAYSCALE and RGB, the output is RGB, and if the\ninputs are GRAYSCALEALPHA and RGB, the output is RGBALPHA.  If the inputs\ndiffer and are not all visual, the output tuple type is a null string.\n\nWhen the output is PAM, its depth is the maximum of the depths of the\ninputs (including implied depths of PNM images), but at least enough to\nrepresent the tuple type specified above.  In the case of nonvisual PAM\noutput, input images are padded to this output depth with higher numbered\nplanes of all zeroes.\n\nWhere the input images are of different widths and you concatenate top\nto bottom, pamcat generates output as wide as the widest of the\ninputs and pads the narrower ones.  The images can be justified either\nleft, right, or center within this padded field.  Use options\n-jleft, -jright, and -jcenter to control this.\n\nSimilarly, where the input images are of different heights and you\nconcatenate left to right, pamcat generates output as tall as the\ntallest of the inputs and pads the shorter ones.  The images can be\njustified either top, bottom, or center within this padded field.  Use\noptions\n-jtop, -jbottom, and -jcenter to control this.\n\nYou can make the padding black or white or let pamcat determine a\nlikely background color, with possibly different colored padding for each\ninput image.  Control this with the -black and -white options.\n\nWhere the output image contains transparency information (because at least\none of the input images does), the padding is opaque.  (That is consistent\nwith the result for an output image without transparency information, because\nsuch an image is defined to be opaque).\n\n\nThe  arguments are names of input files.  Any one of these, but not more than one, may be \"-\"\nto indicate Standard Input.  If you have no arguments (and do not  specify  -listfile),  that\nmeans  a  single  input  image from Standard Input (and that is pointless - the output is the\nsame as the input).  You can supply the file names in a file instead of as arguments  with  a",
                "subsections": [
                    {
                        "name": "-listfile",
                        "content": "Regardless of how you specify the input files, you may not concatenate\nmore files than your system's limit on the number of concurrently\nopen files by one process.  16 is a typical number for that.\n\nTo assemble a regular grid of images, you can use pamundice.\n\nTo do the reverse, you might use pamdice to split an image up into smaller ones of equal size\nor pamcut to chop off part of an image or extract part of an image.\n\npnmtile concatenates a single input image to itself repeatedly.\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\\ ), pamcat recognizes the following command line options:\n\n",
                "subsections": [
                    {
                        "name": "Direction",
                        "content": ""
                    },
                    {
                        "name": "-topbottom -tb",
                        "content": "Combine images vertically, top to bottom.\n\n"
                    },
                    {
                        "name": "-leftright -lr",
                        "content": "Combine images horizontally, left to right.\n\nYou must specify the direction by specifying one of the above.  You cannot\nspecify both.\n\n\n\n"
                    },
                    {
                        "name": "Justification",
                        "content": ""
                    },
                    {
                        "name": "-jleft",
                        "content": "Left-justify images in a top-bottom concatenation.\n\nYou cannot specify this with -jright\n\nThis option is invalid in a left-right concatenation.\n\n"
                    },
                    {
                        "name": "-jright",
                        "content": "Right-justify images in a top-bottom concatenation.\n\nYou cannot specify this with -jleft\n\nThis option is invalid in a left-right concatenation.\n\n"
                    },
                    {
                        "name": "-jtop",
                        "content": "Top-justify images in a left-right concatenation.\n\nYou cannot specify this with -jbottom\n\nThis option is invalid in a top-bottom concatenation.\n\n"
                    },
                    {
                        "name": "-jbottom",
                        "content": "Bottom-justify images in a left-right concatenation.\n\nYou cannot specify this with -jtop\n\nThis option is invalid in a top-bottom concatenation.\n\n"
                    },
                    {
                        "name": "-jcenter",
                        "content": "Center images (valid for both left-right and top-bottom concatenations).\nThis is the default.\n\n\n\nBy default, pamcat centers the smaller images.\n-topbottom -jleft would stack the images on top of each other, flush\nwith the left edge.  -leftright -jbottom would line up the images\nleft to right with their bottom edges aligned as if sitting on a table.\n\n\n"
                    },
                    {
                        "name": "Padding Color",
                        "content": "These options specify what color to use to fill in the extra space when doing the  justifica‐\ntion.   If neither is specified, pamcat chooses whichever color seems to be right for the im‐\nages, and the color may be different for each image.\n\n"
                    },
                    {
                        "name": "-white",
                        "content": "You may not specify this with -black\n"
                    },
                    {
                        "name": "-black",
                        "content": "You may not specify this with -white\n\n\n\n"
                    },
                    {
                        "name": "Miscellaneous",
                        "content": ""
                    },
                    {
                        "name": "-listfile= -",
                        "content": "This specifies the name of a file that contains the list of input files.\nOption value - means the list comes from Standard Input.\n\nThe file contains one file name per newline-delimited line in whatever\ncode the system fopen service expects.  You may omit the newline\non the last line.  Empty lines are ignored.  There is no mechanism for\nincluding comments in the list (so if you want to have a commented list,\npreprocess it to remove comments before supplying it to pamcat).\n\nYou may not specify file names as command line arguments together with\n-listfile\n\nYou may not list more files than than your system's limit on the\nnumber of concurrently open files by one process.  16 is a typical number\nfor that.\n\nThis option was new in Netpbm 11.01 (December 2022).\n\n\n\n"
                    }
                ]
            },
            "SEE ALSO": {
                "content": "pamundice(1), pamdice(1), pnmtile(1), pamcut(1), pnm(1), pam(1)\n\n\n",
                "subsections": []
            },
            "HISTORY": {
                "content": "pamcat was new in Netpbm 11.00 (September 2022); in earlier versions,\npnmcat does most of the same thing.\n\nPrimordial Netpbm/Pbmplus contained concatenation tools, but there were two\nof them: pbmcatlr for left-right concatenation of PBM images\nand pbmcattb for top-bottom concatenation.  When the PGM and PPM\nformats were added, these programs were combined and extended to handle all\nthree formats, as pnmcat.  All of this work was done by Pbmplus\nauthor Jef Poskanzer.\n\nIn Netpbm 10.44 (September 2008), Akira F Urushibata added special fast\nprocessing for raw PBM images, exploiting bitstring processing CPU\nfacilities.\n\npnmcat was one of the most essential programs in Netpbm, but one\nthing it could not concatenate was PAM images with transparency.  So in\nNetpbm 11.00 (September 2022), Bryan Henderson wrote pamcat to\nreplace it.  It reused the raw PBM fast path code from pnmcat almost\nverbatim.\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/pamcat.html\n\nnetpbm documentation                      30 November 2022                     Pamcat User Manual(1)",
                "subsections": []
            }
        }
    }
}