sips (Scriptable Image Processing System) is used to query or modify raster image files and ColorSync ICC profiles. Its functionality can also be used through the "Image Events" AppleScript suite.
SIPS stands for: Scriptable Image Processing System. SIPS was created because it was determined there was a need for a tool which would perform many common operations on image files in a scriptable manner.
As it stands, there are a number of existing technologies which provide for manipulations of images. For example, ColorSync Scripting can perform many ColorSync operations such as color-matching of images, but it can't rotate, scale or convert formats. Image Capture Scripting can rotate and scale images, but it can't color match or convert formats. Finally, the Preview application can rotate, scale and covert formats, but it is not Apple-scriptable.
SIPS brings all these different technologies together to provide a single tool with which to perform common operations on images. The current feature set for SIPS includes:
Read, write or convert different raster image formats
jpeg (Jfif & Xiff), TIFF, GIF, PNG
Basic image operations
Rotate, flip, crop, pad, resample, change dpi
Color management operations
Embed, extract or match to profiles
Read or write known metadata tags
Preserve original content whenever possible
Possible features for future releases of SIPS include:
Support for complex formats
Multilayer, multipage or vector-based
Advanced image operations
Blur, sharpen, ehnance, etc.
Read or write any metadata tag (list of metadata tags is always increasing, contact dts@apple.com to suggest additional tags)
SIPS is currently implemented as a simple compiled tool, which is installed in /usr/bin/sips. It links against CoreGraphics, QuickTime and ColorSync. It can operate on one or more file at a time. It can query or modify images or profiles. SIPS queries can return properties in simple text form or in XML form. Actions can modify files in-place or to an output directory.
Because SIPS is a simple command line tool there's lots of ways to use it. It can be invoked from the terminal shell, from AppleScript, from other scripting languages or from an application using C code (AppKit or Posix calls).