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

This chapter explains how to call VIPS functions from C programs. It does not
explain how to write new image processing operations (see \pref{sec:oper}),
only how to call the ones that VIPS provides. If you want to call VIPS
functions from C++ programs, you can either use the interface described here
or you can try out the much nicer C++ interface described in \pref{sec:cpp}.

See \pref{sec:ref} for an introduction to the image processing operations
available in the library. \fref{fg:architecture} tries to show
an overview of this structure.

\begin{fig2}
\figw{5in}{arch.png}
\caption{VIPS software architecture}
\label{fg:architecture}
\end{fig2}

VIPS includes a set of UNIX manual pages. Enter (for example):

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

\noindent
to get an explanation of the \verb+im_extract()+ function.

All the command-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}
