pamenlarge - Man Page

Enlarge a Netpbm image N times by duplicating pixels

Examples (TL;DR)

Synopsis

pamenlarge [-scale=integer] [-xscale=integer] [-yscale=integer] [filename]

pamenlarge N [pnmfile]

Description

This program is part of Netpbm(1).

pamenlarge reads a Netpbm image as input, replicates its pixels N times, and produces a Netpbm image as output.  The output is the same type of image as the input.

If you enlarge by a factor of 3 or more, you should probably add a pnmsmooth step; otherwise, you can see the original pixels in the resulting image.

For PBM images, pamenlarge uses special fast algorithms for scale factors up to 10.  For larger factors, it uses a simple but slow algorithm. As a result, you can often get a significantly faster scale by running pamenlarge multiple times.  For example, enlarging by 3 and then by 5 is faster than enlarging once by 15.  And because the algorithms are different for the different scale factors, some faster than others, the order matters too.  For example, the following examples all produce the same output -- an image 15 times bigger on edge than the input -- but at different speeds, each being faster than the one before.

     $ pamenlarge -scale=15 test.pbm
     $ pamenlarge -scale=5 test.pbm | pamenlarge -scale=3
     $ pamenlarge -scale=3 test.pbm | pamenlarge -scale=5

The special fast cases for factors up to 10 have existed since Release 10.50 (March 2010).  The special cases for 1, 2, 3, and 5 go back to Release 10.41 (December 2007).  Before 10.41, there are no special scale factors and PBM enlargement is significantly slower than today for all scale factors.

pamenlarge can enlarge only by integer factors.  The slower but more general pamscale can enlarge or reduce by arbitrary factors.  pamscale allows you to enlarge by resampling, which gives you smoother enlargements.  But it is much slower.

pamstretch is another enlarging program that enlarges by integer factors.  It does a simple kind of resampling that gives you a smoothed enlargement with less computational cost.

pbmreduce can reduce by integer factors, but only for PBM images.

Arguments

As with most Netpbm programs, you can give the input file name as an argument or omit that argument and have it come from Standard Input (and you can specify '-' for the argument to specify Standard Input explicitly).

You can also specify the scale factor as an argument, for backward compatibility, but the preferred way to do that is with a -scale option, because it is easier to remember and read that way.  The scale factor argument goes before the file name argument.

 

Options

In addition to the options common to all programs based on libnetpbm (most notably -quiet, see Common Options ), pamenlarge recognizes the following command line options:

-scale=integer
-xscale=integer
-yscale=integer

These specify the scale factor.  -xscale specifies the horizontal scale factor; -yscale specifies the vertical scale factor and -scale specifies both.

If you specify -xscale but not -yscale, pamenlarge does not scale vertically (i.e. the vertical scale factor is 1).  The converse applies if you specify -yscale and not -xscale.

You cannot specify -scale and also -xscale or yscale.

You must specify at least one of these options, unless you use the deprecaated method of specifying the scale factor via argument.

These options were all new in Netpbm 10.86 (March 2019).  Before that, use the scale argument.
 

 

History

pamenlarge was new in Netpbm 10.25 (October 2004).  It is designed as a replacement for pnmenlarge by Jef Poskanzer, which was in Pbmplus as far back as 1989.  The major difference is that pamenlarge can enlarge PAM format images in addition to PNM.

See Also

pbmreduce(1), pamscale(1), pamstretch(1), pbmpscale(1), pnmsmooth(1), pnm(1)

Author

Copyright (C) 1989 by Jef Poskanzer.

Document Source

This manual page was generated by the Netpbm tool 'makeman' from HTML source.  The master documentation is at

http://netpbm.sourceforge.net/doc/pamenlarge.html

Referenced By

fstopgm(1), pamhomography(1), pamscale(1), pamstretch(1), pbmpscale(1), pbmreduce(1), pbmtoescp2(1), pnmenlarge(1), pnmscalefixed(1).

07 January 2019 netpbm documentation