ICV(1)

πŸ“¦
version 7.44.0 Β· 2 versions
, in nixpkgs unstable

πŸ’… 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 of pixdiff(1). use -o to 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 πŸ’…

  • -i file, β€”input file β€” specify the input file name. if you don't, the first positional argument gets used. she's flexible like that ✨
  • -o file, β€”output file β€” specify the output file name. if you don't, the second positional argument gets used. same energy 🫢
  • -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. she'll try to figure it out, but don't count on it πŸ’€
  • -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. yes, again. raw formats are just Like That πŸ™ˆ
  • β€”input-format fmt β€” explicitly set the input image format (e.g., png, pix, bw). say it with your chest πŸ“£
  • β€”output-format fmt β€” 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 🌸

  • -o file, β€”output file β€” specify a file path to save the diff image output. save the receipts πŸ’Ύ
  • β€”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. 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 πŸ‘‘

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