ICV(1)
π ICV(1) β the BRL-CAD image-glowup page β¨
okay so bestie, welcome to icv(1), one of the BRL-CAD girlies π β she converts, compares, and reports information for image formats. that's the whole vibe. let's get into it.
πΈ 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> ...
like, four whole moods. pick your fighter π
β¨ DESCRIPTION β¨
so if you don't give her a subcommand, icv is in image format converter mode β she reads the input image and writes it to the output file. iconic behavior, honestly.
Image formats are auto-detected from file extensions unless you override with βinput-format / βoutput-format. and heads up bestie π«Ά β to stream through standard input or output (a path that carries no extension, iykyk) you must give the corresponding format explicitly. no guessing games.
she's the main character who's eventually gonna replace the whole family of single-purpose pix-png(1), png-pix(1), bw-pix(1) and similar converters. generation-defining, fr fr π
π¦ Supported Formats π¦
here's the glow-up table, but make it a list because we keep it cute:
- Black and White (Grayscale) β extension
bw - Double Precision Pixel (R/G/B/A double) β extension
dpix - Pixel Sequence (R/G/B unsigned char) β extension
pix - Portable Network Graphics β extension
png - Portable Pixmap β extension
ppm
π Subcommands π
infoβ reports 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). she's nosy in the best way πdiffβ compares two images and reports 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 β but only if stdout is not a terminal β matching the behaviour ofpixdiff(1). use-oto write the diff image to a named file instead. the drama of catching differences π₯animβ manages animation files (APNG, MJPG). supports actions for adding, extracting, replacing, inserting, and removing frames, plus setting animation playback speed and per-frame delays. frame-by-frame choreography, literally π
π OPTIONS π
π Conversion Options π
-ifile,βinputfile β specify the input file name. if you don't, the first positional argument gets used. she's flexible like that β¨-ofile,βoutputfile β specify the output file name. if you don't, the second positional argument gets used. same energy π«Ά-wwidth,βwidthwidth β 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. she'll try to figure it out, but don't count on it π-nheight,βheightheight β specify the height of the input image. required for raw formats (like PIX and BW) that do not encode dimensional information. yes, again. raw formats are just Like That πβinput-formatfmt β explicitly set the input image format (e.g.,png,pix,bw). say it with your chest π£βoutput-formatfmt β explicitly set the output image format. same but outgoing π-h,βhelp,-?β print conversion help and exit. the "wait what do i do" button π§
πΈ Diff Subcommand Options πΈ
-ofile,βoutputfile β specify a file path to save the diff image output. save the receipts πΎβoutput-formatformat β explicitly set the format of the output diff image.βformat-img1format β explicitly set the format of the first input image.βformat-img2format β 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. help but specifically for the diff girlies π
β 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. lowkey she's trying her best π
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. vibe check the whole folder at once, we love efficiency π
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. catching regressions like a detective ππ
π₯ SEE ALSO π₯
brlcad(1), pixdiff(1), pix-png(1), png-pix(1), bw-pix(1), pix(5), bw(5)
go read the whole friend group, they're all linked π
π§ AUTHOR π§
BRL-CAD Team β kings, honestly π
π COPYRIGHT π
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 β tell them everything, they want the tea βπ
ngl if something's broken, email devs@brlcad.org instead of just suffering in silence bestie π«Ά
okay that's the whole page!! π this was icv(1) from the BRL-CAD crew, BRL-CAD edition, no cap β go convert something gorgeous and slay β¨ππ¦
π¦ where this page comes from
- nixpkgs unstable: brlcad 7.44.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms