\section{Introduction}
\mylabel{sec:ref}

This document introduces the functions available in the VIPS image
processing library.  For detailed information on particular functions,
refer to the UNIX on-line manual pages. Enter (for example):

\begin{verbatim}
example% man im_abs   
\end{verbatim}

for information on the function \verb+im_abs()+.

All the comand-line vips operations will print help text too. For example:

\begin{verbatim}
example% vips im_extract
usage: vips im_extract input output 
  left top width height band
where:
        input is of type "image"
        output is of type "image"
        left is of type "integer"
        top is of type "integer"
        width is of type "integer"
        height is of type "integer"
        band is of type "integer"
extract area/band, from package 
  "conversion"
flags: (PIO function) 
  (coordinate transformer) 
  (area operation) 
  (result can be cached)
vips: error calling function
im_run_command: too few arguments
\end{verbatim}

Once you have found a function you need to use, you can call it from a C
program (see \pref{sec:appl}), you can call
it from C++ or Python (see \pref{sec:cpp}), you can call
it from the \nip{} ((see the \emph{nip Manual}), or SIAM graphical
user-interfaces, or you can run it from the UNIX command line with the
\vips{} program. For example:

\begin{verbatim}
john% vips im_vips2tiff cam.v t1.tif none
john% vips im_tiff2vips t1.tif t2.v.v 0
john% vips im_equal cam.v t2.v t3.v
john% vips im_min t3.v
255   
\end{verbatim}

VIPS may have been set up at your site with a set of links which call the
vips program for you. You may also be able to type:

\begin{verbatim}
john% im_vips2tiff cam.v t1.tif none
john% im_tiff2vips t1.tif t2.v.v 0
john% im_equal cam.v t2.v t3.v
john% im_min t3.v
\end{verbatim}

There are a few VIPS programs which you cannot run with \vips{}, either
because their arguments are a very strange, or because they are complete
mini-applications (like \verb+vips2dj+). These programs are listed in
table~\ref{tb:nondb}, see the man pages for full details.

\begin{tab2}
\centerline{
\begin{tabular}{|l|l|}
\hline
Name & Description \\
\hline
\texttt{binfile} & Read RAW image \\
\texttt{debugim} & Print an image pixel by pixel \\
\texttt{edvips} & Change fields in a VIPS header \\
\texttt{header} & Print fields from a VIPS header \\
\texttt{printlines} & Print an image a line at a time \\
\texttt{vips} & VIPS universal main program \\
\texttt{vips-7.12} & VIPS wrapper script \\
\texttt{find\_mosaic} & Analyse a set of images for overlaps \\
\texttt{mergeup} & Join a set of images together \\
\texttt{cooc\_features} & Calculate features of a co-occurence matrix \\
\texttt{cooc} & Calculate a co-occurence matrix \\
\texttt{glds\_features} & Calculate features of a grey-level 
	distribution matrix \\
\texttt{glds} & Calculate a grey-level distribution matrix \\
\texttt{simcontr} & Demonstrate simultaneous contrast \\
\texttt{sines} & Generate a sinusoidal test pattern \\
\texttt{spatres} & Generate a spatial resolution test pattern \\
\texttt{squares} & Generate some squares \\
\texttt{batch\_crop} & Crop a lot of images \\
\texttt{batch\_image\_convert} & File format convert a lot of images \\
\texttt{batch\_rubber\_sheet} & Warp a lot of images \\
\texttt{light\_correct} & Correct a set of images for shading errors \\
\texttt{mitsub} & Format a VIPS image for output to a Mitsubishi 3600 \\
\texttt{shrink\_width} & Shrink to a specific width \\
\texttt{vdump} & VIPS to mono Postscript \\
\texttt{vips2dj} & VIPS to high-quality colour Postscript \\
\hline
\end{tabular}
}
\caption{Miscellaneous programs}
\label{tb:nondb}
\end{tab2}
