jpegpixi(1) interpolate pixels in JFIF (JPEG) image files


jpegpixi [OPTION]... SOURCE DEST [[D:]X,Y[,S]|[,SX,SY]]...


Jpegpixi interpolates pixels or pixel blocks in JFIF images files (commonly referred to as "JPEG images"). This is useful to correct images from a digital camera with CCD defects. Only DCT blocks which contain pixels to be interpolated are decoded and re-encoded, and the re-encoding is performed with exactly the same parameters with which the image has originally been encoded. Therefore, the image quality is preserved as much as possible.

SOURCE and DEST are the filenames of the source file and the destination file, respectively. In both cases, - can be used, which refers to standard input or standard output.

The destination filename is followed by any number of pixel or pixel block specifications. It starts with an optional direction specifier (D), which can be 2 for 2-dimensional interpolation (the default), V or v for 1-dimensional vertical interpolation (e.g. to remove horizontal stripes), or H or h for 1-dimensional horizontal interpolation. X,Y are the coordinates of the pixel or the upper-left corner of the pixel block. S is the size of the pixel block (1 by default). Alternatively, separate sizes can be specified for the width (SX) and the height (SY).

All numbers (X, Y, S, SX, SY) can be expressed as absolute coordinates/sizes or percentages of the image size. If a number is followed by a percent character (%), it is interpreted as a percentage, otherwise as an absolute number.


-f FILE, --blocks-file=FILE
Read pixel block specifications from file FILE in addition to the command line. The file should contain one specification ([D:]X,Y[,S]|[,SX,SY]) per line. Empty lines are ignored. The file may also contain comments, which start with an octothorpe (#) and extend to the end of the line.
-m METHOD, --method=METHOD
Use interpolation method METHOD (default: linear). See section INTERPOLATION METHODS below.
-v, --verbose
Display the coordinates and size of each pixel block that is interpolated.
-i, --info
Display information about the image, such as the size of the image, the colorspace in which it is encoded, and sampling rates for the different components.
-s, --strip
Do not copy comment and extra markers from the source to the destination file. This strips preview images, EXIF data, and similar information.
Display a short help text and exit immediately.
Display version information and exit immediately.


0, av, average
The pixels adjacent to the pixel block are averaged. The resulting color is assigned to all pixels in the block. For 1-dimensional interpolation, this is done separately for one pixel wide, horizontal or vertical stripes.
1, li, linear
The pixels which have a distance of 1 from the pixel block are used to calculate a bilinear surface (2-dim), or a group of linear curves (1-dim), which is then used to assign colors to the pixels in the block.
2, qu, quadratic
The pixels which have a distance of 2 or less from the pixel block are used to calculate a biquadratic surface (2-dim), or a group of quadratic curves (1-dim), which is then used to assign colors to the pixels in the block.
3, cu, cubic
The pixels which have a distance of 3 or less from the pixel block are used to calculate a bicubic surface (2-dim), or a group of cubic curves (1-dim), which is then used to assign colors to the pixels in the block.


Please report bugs to <[email protected]>.


Copyright © 2002, 2003, 2004, 2005 Martin Dickopp

Jpegpixi is free software; it may be copied and/or modified under the terms of the GNU General Public License version 2 or (at your option) any later version. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.