Skip to documentation
DocumentationAll documentsEnglish

ICV(1)

NAME

icv - convert, compare, and report information for image formats

On this page

SYNOPSIS

icv [-w width] [-n height] [--input-format fmt] [--output-format fmt] [-i input] [-o output] [input] [output]
icv info file [file ...]
icv diff [options] img1 img2
icv anim <action> <anim_file> ...

DESCRIPTION

Without a subcommand, icv acts as an image format converter, reading the input image and writing it to the output file. Image formats are auto-detected from file extensions unless overridden with --input-format / --output-format. To stream through standard input or output (a path of which carries no extension) the corresponding format must be given explicitly. This tool is intended to eventually replace the family of single-purpose pix-png(1), png-pix(1), bw-pix(1) and similar converters.

Supported Formats

Format Extension

Black and White (Grayscale)

bw

Double Precision Pixel (R/G/B/A double)

dpix

Pixel Sequence (R/G/B unsigned char)

pix

Portable Network Graphics

png

Portable Pixmap

ppm

Subcommands

info

Report the width, height, format, number of channels, color space, and any embedded render information (like the database and objects used to render it) for the specified image file(s).

diff

Compare two images and report per-channel match statistics on standard error. When the images differ and no output file is given, a raw PIX difference image is written to standard output (only if stdout is not a terminal), matching the behaviour of pixdiff(1). Use -o to write the diff image to a named file instead.

anim

Manage animation files (APNG, MJPG). Supports actions for adding, extracting, replacing, inserting, and removing frames, as well as setting animation playback speed and per-frame delays.

OPTIONS

Conversion Options

-i file, --input file

Specify the input file name. If not specified, the first positional argument is used.

-o file, --output file

Specify the output file name. If not specified, the second positional argument is used.

-w width, --width width

Specify the width of the input image. Required for raw formats (like PIX and BW) that do not encode dimensional information, unless the size can be automatically deduced from the file size.

-n height, --height height

Specify the height of the input image. Required for raw formats (like PIX and BW) that do not encode dimensional information.

--input-format fmt

Explicitly set the input image format (e.g., png, pix, bw).

--output-format fmt

Explicitly set the output image format.

-h, --help
-?

Print conversion help and exit.

Diff Subcommand Options

-o file, --output file

Specify a file path to save the diff image output.

--output-format format

Explicitly set the format of the output diff image.

--format-img1 format

Explicitly set the format of the first input image.

--format-img2 format

Explicitly set the format of the second input image.

--width-img1 #

Specify the width of the first input image (raw formats only).

--height-img1 #

Specify the height of the first input image (raw formats only).

--width-img2 #

Specify the width of the second input image (raw formats only).

--height-img2 #

Specify the height of the second input image (raw formats only).

-h, --help
-?

Print diff subcommand help and exit.

EXAMPLES

Example 1. Convert a raw PIX render to PNG
icv -w 1024 -n 512 render.pix render.png

Reads a headerless 1024x512 PIX file and writes a PNG. The dimensions are required because PIX (and BW) carry no size information in the file; when omitted, icv attempts to deduce them from the file size.

Example 2. Inspect images before further processing
icv info *.png

Reports the width, height, format, channel count, color space, and any embedded render information (originating database and objects) for every PNG in the directory, useful for confirming a batch of renders is consistent before compositing.

Example 3. Regression-test a render against a known-good reference
icv diff -o delta.png reference.png current.png

Compares two renders, prints per-channel match statistics to standard error, and writes a highlighted difference image to delta.png. Omitting -o streams a raw PIX diff to standard output for piping, exactly as pixdiff(1) does.

SEE ALSO

brlcad(1), pixdiff(1), pix-png(1), png-pix(1), bw-pix(1), pix(5), bw(5)

AUTHOR

BRL-CAD Team

This software is Copyright (c) 1989-2026 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