---
name: "nip2"
section: "1"
platform: "linux"
package: "nip2"
version: "8.9.1-1+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nip2"
---

# nip2(1)

image processing with the VIPS library

## NAME

nip2 - image processing with the VIPS library

## SYNOPSIS

**nip2 \[filename1 ...\]**\
 **nip2 -s filename \[arg1 ...\]**\
 **nip2 -e expression \[arg1 ...\]**

## DESCRIPTION

**nip2** (for New Image Processing) is a tool for manipulating images using the VIPS image processing library.

There are three principal modes:

**nip2 \[filename1 ...\]**\
\
   start in GUI mode, loading the named files

**nip2 -e expression \[arg1 ...\]**\
 **nip2 --expression=EXPRESSION \[arg1 ...\]**\
\
   start in no-GUI mode; set main = expression, set list argv to\
   \["filename", "arg1", "arg2", ...\], set argc to length of list; print\
   the value of symbol "main" to stdout; exit

**nip2 -s filename \[arg1 ...\]**\
 **nip2 --script=FILENAME \[arg1 ...\]**\
\
   start in no-GUI mode; read in filename as a set of definitions, \
   set list argv to \["filename", "arg1", "arg2", ...\], set argc to \
   length of list; print the value of symbol "main" to stdout; exit; \
   useful for running nip2 as an interpreter on unix

You can use **-o** to direct output to a file rather than stdout.

**-o filename**\
 **--output=FILENAME**\
\
   the value of main is written to the named file. If main is a \
   list, the filename is incremented between objects. You can use \
   the suffix to specify the format and options to write in

Other options provide finer control over startup and shutdown. If you need to do something strange, don't use -e/-s, use these in combination.

**-b**\
 **--batch**\
\
   batch (ie. non-GUI) mode

**-m**\
 **--no-load-menus**\
\
   don't load menus, for faster startup

**-a**\
 **--no-load-args**\
\
   don't load extra command-line arguments

**-w**\
 **--stdin-ws**\
\
   load stdin as a workspace

**-d**\
 **--stdin-def**\
\
   load stdin as a set of definitions

**-p**\
 **--print-main**\
\
   print the value of main on exit. nip2 will check for a top-level \
   symbol called main, and also check each workspace for a main

Finally some other options are useful for debugging, timing and for generating strings for internationalisation.

**-V**\
 **--verbose**\
\
   produce verbose error messages: handy for debugging in batch mode

**-i**\
 **--i18n**\
\
   output strings from .def files for internationalisation

**-v**\
 **--version**\
\
   print version information

**-c**\
 **--benchmark**\
\
   benchmark: no GUI, just start up and shut down

**-t**\
 **--time-save**\
\
   time saves: after every image save a popup tells you the time the \
   save took in seconds

**-T**\
 **--test**\
\
   test: start up (including any arg processing), test for any errors, \
   and exit with an error code if any occured. Useful for running \
   automated tests.

**-x PREFIX**\
 **--prefix=PREFIX**\
\
   set install prefix: start up as if nip2 had been installed to PREFIX.\
   Useful for running automated tests without installing the thing.

## EXAMPLES

  nip2 fred.jpg

Start nip2, loading fred.jpg.

  nip2 -e "2 + 2"

Prints 4 to stdout.

  nip2 -e "99 + Image\_file argv?1" -o result.png fred.jpg

Load argv1 (fred.jpg), add 99, output to result.png.

  nip2 -e "Matrix \[\[1,2\],\[4,5\]\] \*\* -1" -o poop.mat

Invert the 2x2 matrix and write the result to poop.mat.

## COPYRIGHT

2008 (c) Imperial College, London
