PIXSCALE(1)

NAME

pixscale - change the size of a color pix file

SYNOPSIS

pixscale [-r] [-s squareinsize] [-w in_width] [-n in_height] [-S squareoutsize] [-W out_width] [-N out_height] [infile.pix] > outfile.pix

DESCRIPTION

pixscale will take a color pix(5) format file of given dimensions and produce a larger or smaller scaled version. The -w and -n flags specify the input file width and number of scan lines in pixels. They can both be set to the same value via -s. Similarly, the -W and -N flags specify the desired output file width and number of scan lines in pixels. They can both be set to the same value via -S. Defaults of 512 are assumed for any unspecified dimensions.

The algorithm used is bilinear interpolation if scaling up, and a box filter of arbitrary size if scaling down. For the box filter a "square pixel" assumption is made; that is, all whole and fractional input pixels falling into a rectangle the size of an output pixel contribute equally according to the fraction of the output pixel area they cover. When interpolating, the edge pixels are preserved, i.e. all of the interpolated pixels fall inside of the edges. This can be a bit surprising when say doubling the size of a file as only the edge pixels will fall at exactly the location of an output pixel.

Specifying the -r flag changes from bilinear interpolation to nearest neighbor interpolation, i.e. it enlarges the image by pixel replication.

For 2X interpolation, a much faster alternative is pixinterp2x(1).

BUGS

This program cannot scale up in one dimension and down in the other at the same time. The box filter used for scaling down results in the usual high-frequency ripple. Optional cubic interpolation would be nice.

AUTHOR

BRL-CAD Team

This software is Copyright (c) 1989-2021 by the United States Government as represented by U.S. Army Research Laboratory.

BUG REPORTS

Reports of bugs or problems should be submitted via electronic mail to devs@brlcad.org