poImg Reference Manual

The reference manual lists all available C functions and Tcl commands in alphabetical order.

The Tcl commands are mostly wrapped C functions. These commands are documented in accordance with the corresponding C function. They have a section called Tcl usage:, which explains the Tcl call method and parameters.

Note the following conventions in the Tcl usage documentation sections:

  • A parameter postfix of :return indicates, that the parameter is not a real parameter, but the return value of the command.
  • A parameter postfix of :out indicates, that the parameter is an output parameter, i.e. a Tcl variable with that name is created and filled with the appropriate value.
  • Parameters of the form ?param=1.0? indicate an optional parameter and its default value.

A B C D E F G H I J M N P R S T U W


A

AddChannel

  Name:           IP_AddChannel

  Usage:          Add a channel to an image.

  Synopsis:       UT_Bool IP_AddChannel(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          FF_ImgFmtType formatType)

  Tcl usage:      $img AddChannel channel formatType

  Description:    Add a new channel "channel" to image "img".
                  The new channel is using pixel format "formatType".
                  The contents of the new channel are not initialized.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: DeleteChannel

Top of page

AsPhoto

  Name:           IP_AsPhoto

  Usage:          Copy an image into a Tk photo image.

  Synopsis:       UT_Bool IP_AsPhoto(
                          Tcl_Interp *interp,
                          IP_ImageId srcImg,
                          const char *photoName,
                          FF_ImgChanType chanMapList[4],
                          Float32 gamma,
                          Float32 minValue, Float32 maxValue)

  Tcl usage:      $srcImg AsPhoto photoName ?chanMapList? ?gamma=1.0? ?minValue=-1.0? ?maxValue=-1.0?

  Description:    Copy image "srcImg" into Tk photo image "photoName".

                  Notes:
                  - To have more advanced floating point mapping,
                    ex. "Automatic Gain Control", use poImgUtil::AsPhoto.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: NewImageFromPhoto poImgUtil::AsPhoto

Top of page

AsPhoto

   Name:           poImgUtil::AsPhoto

   Usage:          Create a Tk photo from an image.

   Tcl usage:      AsPhoto { img args }

                   img:  image
                   args: Arguments for img::raw parser

  Tcl usage:      $srcImg AsPhoto photoName ?chanMapList? ?gamma=1.0? ?minValue=-1.0? ?maxValue=-1.0?

   Description:    Create a Tk photo from image "img".

                   The following img::raw options can be
                   supplied in parameter "args":
                       -verbose
                       -map
                       -min
                       -max
                       -gamma
                       -saturation
                       -cutoff

                   See the img::raw documentation for a description
                   of the options:
                   https://tkimg.sourceforge.net/RefMan/files/img-raw.html

                   Use this utility procedure only, if image "img" has
                   FLOAT channels and the improved mapping algorithms
                   like automatic gain control are needed.
                   Otherwise AsPhoto is much faster.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The Tk photo image.

See also: AsPhoto

Top of page

B

Blank

  Name:           IP_Blank

  Usage:          Blank all channels of an image.

  Synopsis:       void IP_Blank(IP_ImageId img)

  Tcl usage:      $img Blank

  Description:    All channels in image "img" are filled with zeroes.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: BlankRect

Top of page

BlankRect

  Name:           IP_BlankRect

  Usage:          Blank all channels of an image rectangle.

  Synopsis:       void IP_BlankRect(
                       IP_ImageId img,
                       Int32 x1, Int32 y1,
                       Int32 x2, Int32 y2)

  Tcl usage:      $img BlankRect x1 y1 x2 y2

  Description:    Draw a filled rectangle of zeros into all
                  channels of image "img".
                  One corner of the rectangle is located at
                  pixel (x1, y1). The diagonally opposite
                  corner is at pixel (x2, y2).

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: Blank

Top of page

Blend

   Name:           poImgUtil::Blend

   Usage:          Blend between two images.

   Tcl usage:      Blend { srcImg1 srcImg2 mixFactor }

                   srcImg1:   image
                   srcImg2:   image
                   mixFactor: float

   Description:    The pixel data for the result image are combined
                   from the data in "srcImg1" and "srcImg2".
                   "mixFactor" should be in the range from 0.0 to 1.0.

                   res.pixel = srcImg1.pixel * mixFactor +
                               srcImg2.pixel * (1-mixFactor)

                   Notes:
                   The blended image has the same format and size as
                   image "srcImg1".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The blended image.

See also: BlendFunct BlendKeypoint

Top of page

BlendFunct

  Name:           IP_BlendFunct

  Usage:          Blend two images, producing an in-between image.

  Synopsis:       UT_Bool IP_BlendFunct(
                          IP_ImageId srcImg1,
                          IP_ImageId srcimg2,
                          IP_ImageId destImg,
                          UT_Bool (* d1Funct)
                                  (Float32, Float32, Float32 *, Float32 *),
                          UT_Bool (* d1Deriv)
                                  (Float32, Float32,
                                   Float32 *, Float32 *, Float32 *, Float32 *),
                          UT_Bool (* d2Funct)
                                  (Float32, Float32, Float32 *, Float32 *),
                          UT_Bool (* d2Deriv)
                                  (Float32, Float32,
                                   Float32 *, Float32 *, Float32 *, Float32 *),
                          UT_Bool (* mixFunct)
                                  (Float32, Float32, Float32 *),
                          Int32 interpStep,
                          IP_FillModeType fillMode)

  Tcl usage:      $destImg BlendFunct srcImg1 srcImg2 d1Funct d1Deriv d2Funct d2Deriv mixFunct interpStep ?fillMode=FILL?

  Description:    IP_BlendFunct interpolates between two source images,
                  "srcImg1" and "srcImg2", by displacing pixels and
                  blending the colors of the displaced pixels. The
                  result is stored in image "destImg". The interpolation
                  is defined by a set of functions, which should
                  be defined as follows:

                    UT_Bool d1Funct
                          (Float32 x, Float32 y,
                           Float32 *u,  Float32 *v)

                    UT_Bool d1Deriv
                          (Float32 x, Float32 y,
                           Float32 *ux, Float32 *uy,
                           Float32 *vx, Float32 *vy)

                    UT_Bool d2Funct
                          (Float32 x, Float32 y,
                           Float32 *u,  Float32 *v)

                    UT_Bool d2Deriv
                          (Float32 x, Float32 y,
                           Float32 *ux, Float32 *uy,
                           Float32 *vx, Float32 *vy)

                    UT_Bool mixFunct
                          (Float32 x, Float32 y,
                           Float32 *f)

                  "d1Funct" and "d1Deriv" define how pixels from
                  "srcImg1" are displaced:
                  Given a position (x, y) in "destImg", "d1Funct"
                  finds the corresponding position (u, v) in "srcImg1".
                  "d1Deriv" computes the four partial derivatives of
                  "d1Funct"; given a position (x, y), "d1Deriv" returns

                      ux = du (x, y) / dx,
                      uy = du (x, y) / dy,
                      vx = dv (x, y) / dx,
                      vy = dv (x, y) / dy.
                      Dv = dv (x, y) / dy.

                  "d2Funct" and "d2Deriv" define how pixels from
                  "srcImg2" are displaced, analogous to "d1Funct"
                  and "d1Deriv".

                  "mixFunct" defines how the colors of the displaced pixels
                  from the source images are combined into colors for
                  the pixels in the destination image.  Given a position
                  (x, y) in "destImg", "mixFunct" computes a blending
                  factor "f". The color in "destImg" is "f" times the
                  color from "srcImg1" plus (1-f) times the color from
                  "srcImg2".

                  Evaluating the five interpolation functions for every
                  pixel can be quite time-consuming. In order to save
                  time, the functions are sampled only every "interpStep"
                  pixels; in-between values are interpolated linearly.

                  "fillMode" selects how colors are assigned to output image
                  pixels which are not covered by pixels in the input
                  images.  The following values for "fillMode" are accepted:

                      IP_FillModeFill     Pixels not covered by the input
                                          images are filled with the
                                          current drawing color.

                      IP_FillModeWrap     The input images are repeated
                                          in horizontal and vertical
                                          direction so that the output
                                          image is tiled with copies of
                                          the input images.

                      IP_FillModeClip     Input pixel coordinates are
                                          clipped so that regions outside
                                          the input images are filled
                                          with the color of the nearest
                                          input image pixel.

                  Notes:

                  - Right-handed coordinate systems are used for
                    positions in the source and destination images.
                    The lower left corner of each image is at (0, 0);
                    the upper right corner is at (1, 1).

                  - Blending factors returned by "mixFunct" should be
                    in the range from 0.0 to 1.0.  Values less than
                    0.0 are treated as 0.0. Values above 1.0 are
                    treated as 1.0.

                  - The return value of all five interpolation functions
                    should normally be UT_True. Image blending is aborted
                    as soon as one of the interpolation functions returns
                    UT_False.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: WarpFunct WarpKeypoint BlendKeypoint SetNumThreads

Top of page

BlendKeypoint

  Name:           IP_BlendKeypoint

  Usage:          Blend two images, producing an in-between image.

  Synopsis:       UT_Bool IP_BlendKeypoint(
                          IP_ImageId srcImg1,
                          IP_ImageId srcImg2,
                          IP_ImageId destImg,
                          Int32 numKeys,
                          const Float32 xsrc1List[],
                          const Float32 ysrc1List[],
                          const Float32 xsrc2List[],
                          const Float32 ysrc2List[],
                          const Float32 mixList[],
                          Int32 interpStep,
                          Float32 smoothness,
                          IP_FillModeType fillMode)

  Tcl usage:      $destImg BlendKeypoint srcImg1 srcImg2 numKeys xsrc1List ysrc1List xsrc2List ysrc2List mixList interpStep ?smoothness=0.0? ?fillMode=FILL?

  Description:    IP_BlendKeypoint interpolates between two source
                  images, "srcImg1" and "srcImg2", by displacing pixels
                  and blending the pixel colors. The result is stored
                  in image "destImg". The interpolation is defined by a
                  set of "numKeys" key points:

                  The position of key point number "i" in "srcImg1" is
                  (xsrc1List[i], ysrc1List[i]); the key point's position in
                  "srcImg2" is (xsrc2List[i], ysrc2List[i]). The key point's
                  position in "destImg" is (xdest[i], ydest[i]), where

                      xdest[i] = xsrc1List[i] * mixList[i] + xsrc2List[i] * (1-mixList[i]);
                      ydest[i] = ysrc1List[i] * mixList[i] + ysrc2List[i] * (1-mixList[i]);

                  The color of the pixel at position (xdest[i], ydest[i])
                  in "destImg" is mixList[i] times the color of the pixel at
                  position (xsrc1List[i], ysrc1List[i]) in "srcImg1" plus
                  (1-mixList[i]) times the color of the pixel at position
                  (xsrc2List[i], ysrc2List[i]) in "srcImg2".

                  For pixels in "destImg", which do not coincide with
                  some key point, the positions in "srcImg1" and
                  "srcImg2", from where the pixel colors are taken, are
                  smoothly interpolated from the key points.

                  Interpolating smoothly between the key points can
                  be quite time-consuming. In order to save some time,
                  the interpolating function is sampled only every
                  "interpStep" pixels; in-between values are interpolated
                  linearly.
                  If "interpStep" is 1, the interpolation function is sampled
                  for every pixel and the resulting image looks as smooth
                  as possible. Setting "interpStep" to a value greater than 1
                  saves time, but the result looks less smooth.

                  "smoothness" selects the smoothness of the function used to
                  interpolate between the key points:
                  If "smoothness" is less than or equal to 0.0, interpolation is
                  very smooth, but changing one key point has a strong
                  effect on the whole image.
                  If "smoothness" is greater than 0.0, a different interpolation
                  algorithm is used. The influence of key points is much
                  more limited to the area around the key points. "smoothness"
                  should be somewhere around 1.0; interpolation becomes
                  smoother when "smoothness" increases.

                  "fillMode" selects how colors are assigned to output image
                  pixels which are not covered by pixels in the input
                  images. The following values for "fillMode" are accepted:

                      IP_FillModeFill     Pixels not covered by the input
                                          images are filled with the
                                          current drawing color.

                      IP_FillModeWrap     The input images are repeated
                                          in horizontal and vertical
                                          direction so that the output
                                          image is tiled with copies of
                                          the input images.

                      IP_FillModeClip     Input pixel coordinates are
                                          clipped so that regions outside
                                          the input images are filled
                                          with the color of the nearest
                                          input image pixel.

                  Notes:
                  - "xsrc1List", "ysrc1List", "xsrc2List" and "ysrc2List"
                    should be in the range from 0.0 to 1.0.
                    The lower left corner of "srcImg1", "srcImg2" and
                    "destImg" is at position (0.0, 0.0).
                    The upper right corner is at position (1.0, 1.0).

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: WarpKeypoint WarpFunct BlendFunct SetNumThreads

Top of page

Blur

  Name:           IP_Blur

  Usage:          Blur an image.

  Synopsis:       UT_Bool IP_Blur(
                          IP_ImageId img,
                          Float32 hori, Float32 vert)

  Tcl usage:      $img Blur hori ?vert=hori?

  Description:    The value of every pixel in "img" is distributed
                  over a rectangular area of "hori" by "vert" pixels
                  using a box filter.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: DepthBlur SetNumThreads

Top of page

C

ChangeChannelGamma

  Name:           IP_ChangeChannelGamma

  Usage:          Change one channel of an image by gamma filtering
                  and linear scaling of the pixel data.

  Synopsis:       UT_Bool IP_ChangeChannelGamma(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          Float32 gamma, Float32 scale, Float32 offset)

  Tcl usage:      $img ChangeChannelGamma channel gamma ?scale=1.0? ?offset=0.0?

  Description:    Channel "channel" of every pixel in image "img" is changed:
                  The pixel's orignal value "v" is clipped (values less
                  than 0.0 are set to 0.0, values greater than 1.0 are
                  set to 1.0). The clipped value is gamma filtered, using
                  gamma factor "gamma" and then scaled by "scale". "offset"
                  is added to the scaled value. The result replaces the
                  pixels original value:

                  v = pow (max (0, min (v, 1)), 1/gamma) * scale + offset

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: RemapChannelValues ComputeChannelDerivates

Top of page

CompositeColorMatte

  Name:           IP_CompositeColorMatte

  Usage:          Composite two images using a color matte.

  Synopsis:       UT_Bool IP_CompositeColorMatte(
                          IP_ImageId fgImg,
                          IP_ImageId bgImg,
                          IP_ImageId destImg,
                          Float32 fr, Float32 fg, Float32 fb,
                          Float32 br, Float32 bg, Float32 bb,
                          UT_Bool fastMode,
                          IP_ImageId matteImg)

  Tcl usage:      $destImg CompositeColorMatte fgImg bgImg ?fr=1.0? ?fg=1.0? ?fb=1.0? ?br=1.0? ?bg=1.0? ?bb=1.0? ?fastMode=false? ?matteImg=None?

  Description:    Image "fgImg" is composited in front of image
                  "bgImg". The result is stored in "destImg".
                  If "matteImg" is NULL, the matte for compositing is
                  taken from image "fgImg". If "matteImg" is not NULL,
                  image "matteImg" supplies the matte.

                  1. The red, green and blue channels of all pixels
                     from "fgImg" are scaled by "fr", "fg" and "fb".
                     The red, green and blue channels of all pixels
                     from "bgImg" are scaled by "br", "bg" and "bb".

                  2. The red, green and blue channels for every pixel
                     in "destImg" are combined from the data in "fgImg"
                     and "bgImg":

                     if "matteImg" is not NUL:

                         cm.red = fg.red * mt.red_matte +
                              bg.red * (1-mt.red_matte);

                         cm.green = fg.green * mt.green_matte +
                              bg.green * (1-mt.green_matte);

                         cm.blue = fg.blue * mt.blue_matte +
                              bg.blue * (1-mt.blue_matte);

                     else

                         cm.red = fg.red +
                              bg.red * (1-fg.red_matte);

                         cm.green = fg.green +
                              bg.green * (1-fg.green_matte);

                         cm.blue = fg.blue +
                              bg.blue * (1-fg.blue_matte);

                  3. The FF_ImgChanTypeRedMatte, FF_ImgChanTypeGreenMatte
                     and FF_ImgChanTypeBlueMatte channels for every pixel
                     in "destImg" are combined from the data in "fgImg"
                     and "bgImg":

                     if "matteImg" is not NULL:

                         cm.red_matte = 1 -
                              (1-mt.red_matte) * (1-bg.red_matte);

                         cm.green_matte = 1 -
                              (1-mt.green_matte) * (1-bg.green_matte);

                         cm.blue_matte = 1 -
                              (1-mt.blue_matte) * (1-bg.blue_matte);

                     else

                         cm.red_matte = 1 -
                              (1-fg.red_matte) * (1-bg.red_matte);

                         cm.green_matte = 1 -
                              (1-fg.green_matte) * (1-bg.green_matte);

                         cm.blue_matte = 1 -
                              (1-fg.blue_matte) * (1-bg.blue_matte);

                  Notes:

                  - If necessary, "fgImg" or "bgImg" can be
                    identical to "destImg", so that IP_CompositeColorMatte
                    overwrites one of the input images with the result.

                  - IP_CompositeColorMatte does not write to the
                    FF_ImgChanTypeBrightness, FF_ImgChanTypeMatte,
                    FF_ImgChanTypeHoriSnr, FF_ImgChanTypeVertSnr and
                    FF_ImgChanTypeDepth channels in "destImg", even if the
                    drawing mask for these channels is set.

                  - For compositing, "fgImg", "bgImg" and
                    "destImg" are aligned at the lower left corner.
                    If "destImg" is wider or higher than "fgImg" or
                    "bgImg", IP_CompositeColorMatte does not change areas
                    in "destImg" which are not covered by "fgImg" or
                    "bgImg".

                  - If the "fastMode" flag is set to UT_True, and all pixel
                    data involved in the compositing are in
                    FF_ImgFmtTypeUByte format, IP_CompositeColorMatte will
                    switch to a faster, but less general compositing
                    algorithm.
                    The results are usually the same as with the slower
                    algorithm; only if one of "fr", "fg", "fb", "br",
                    "bg" or "bb" is greater than 1.0 or less than 0.0,
                    color clipping may be different.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: RGB
                  Float format: RGB

  Return value:   UT_True if successful, else UT_False.

See also: CompositeMatte CompositeDepth CrossDissolve SetNumThreads

Top of page

CompositeDepth

  Name:           IP_CompositeDepth

  Usage:          Composite two images using a depth matte.

  Synopsis:       UT_Bool IP_CompositeDepth(
                          IP_ImageId fgImg,
                          IP_ImageId bgImg,
                          IP_ImageId destImg)

  Tcl usage:      $destImg CompositeDepth fgImg bgImg

  Description:    Image "fgImg" and "bgImg" are combined into a new
                  image "destImg". Both, "fgImg" and "bgImg" must
                  include a FF_ImgChanTypeDepth channel, indicating
                  the distance of the pixels from the viewer.

                  The data from "fgImg" and "bgImg" are combined as
                  follows:

                      if fgImg.pixel is closer than bgImg.pixel

                          destImg.pixel = fgImg.pixel;

                      else

                          destImg.pixel = bgImg.pixel;

                  Notes:

                  - If necessary, "fgImg" or "bgImg" can be identical to
                    "destImg", so that IP_CompositeDepth overwrites one of
                    the input images with the result.

                  - For compositing, "fgImg", "bgImg" and "destImg" are
                    aligned at the lower left corner. If "destImg" is wider
                    or higher than "fgImg" or "bgImg", IP_CompositeDepth
                    does not change areas in "destImg" which are not
                    covered by "fgImg" or "bgImg".

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: CompositeMatte CompositeColorMatte CrossDissolve SetNumThreads

Top of page

CompositeMatte

  Name:           IP_CompositeMatte

  Usage:          Composite two images using a grayscale matte.

  Synopsis:       UT_Bool IP_CompositeMatte(
                          IP_ImageId fgImg,
                          IP_ImageId bgImg,
                          IP_ImageId destImg,
                          Float32 fr, Float32 fg, Float32 fb,
                          Float32 br, Float32 bg, Float32 bb,
                          UT_Bool fastMode,
                          IP_ImageId matteImg)

  Tcl usage:      $destImg CompositeMatte fgImg bgImg ?fr=1.0? ?fg=1.0? ?fb=1.0? ?br=1.0? ?bg=1.0? ?bb=1.0? ?fastMode=false? ?matteImg=None?

  Description:    Image "fgImg" is composited in front of image
                  "bgImg". The result is stored in "destImg".
                  If "matteImg" is NULL, the matte for compositing is
                  taken from image "fgImg". If "matteImg" is not NULL,
                  image "matteImg" supplies the matte.

                  1. The red, green and blue channels of all pixels
                     from "fgImg" are scaled by "fr", "fg" and "fb".
                     The red, green and blue channels of all pixels
                     from "bgImg" are scaled by "br", "bg" and "bb".

                  2. The brightness, red, green and blue channels
                     for every pixel in "destImg" are combined from the
                     data in "fgImg" and "bgImg":

                     if "matteImg" is NULL:

                         cm.bright =
                              fg.bright +
                              bg.bright * (1-fg.matte);
                         cm.red =
                              fg.red +
                              bg.red * (1-fg.matte);
                         cm.green =
                              fg.green +
                              bg.green * (1-fg.matte);
                         cm.blue =
                              fg.blue +
                              bg.blue * (1-fg.matte);
                      else

                         cm.bright =
                              fg.bright * mt.matte +
                              bg.bright * (1-mt.matte);
                         cm.red =
                              fg.red * mt.matte +
                              bg.red * (1-mt.matte);
                         cm.green =
                              fg.green * mt.matte +
                              bg.green * (1-mt.matte);
                         cm.blue =
                              fg.blue * mt.matte +
                              bg.blue * (1-mt.matte);

                  3. The FF_ImgChanTypeMatte channel for every pixel in
                     "destImg" is computed:

                     if "matteImg" is NULL:

                         cm.matte = 1 - (1-fg.matte) * (1-bg.matte);

                     else

                         cm.matte = 1 - (1-mt.matte) * (1-bg.matte);

                  Notes:

                  - If necessary, "fgImg" or "bgImg" can be
                    identical to "destImg", so that IP_CompositeMatte
                    overwrites one of the input images with the result.

                  - IP_CompositeMatte does not write to the
                    FF_ImgChanTypeRedMatte, FF_ImgChanTypeGreenMatte,
                    FF_ImgChanTypeBlueMatte, FF_ImgChanTypeHoriSnr,
                    FF_ImgChanTypeVertSnr and FF_ImgChanTypeDepth channels
                    in "destImg", even if the drawing mask for these
                    channels is set.

                  - For compositing, "fgImg", "bgImg" and
                    "destImg" are aligned at the lower left corner.
                    If "destImg" is wider or higher than "fgImg" or
                    "bgImg", IP_CompositeMatte does not change areas
                    in "destImg" which are not covered by "fgImg" or
                    "bgImg".

                  - If the "fastMode" flag is set to UT_True, and all pixel
                    data involved in the compositing are in
                    FF_ImgFmtTypeUByte format, IP_CompositeMatte will
                    switch to a faster, but less general compositing
                    algorithm.
                    The results are usually the same as with the slower
                    algorithm; only if one of "fr", "fg", "fb", "br",
                    "bg" or "bb" is greater than 1.0 or less than 0.0,
                    color clipping may be different.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: RGB, Brightness
                  Float format: RGB, Brightness

  Return value:   UT_True if successful, else UT_False.

See also: CompositeColorMatte CompositeDepth CrossDissolve SetNumThreads

Top of page

ComputeChannelDerivates

  Name:           IP_ComputeChannelDerivates

  Usage:          Compute differences between adjacent pixels.

  Synopsis:       UT_Bool IP_ComputeChannelDerivates(
                          IP_ImageId srcImg,
                          FF_ImgChanType srcChannel,
                          IP_ImageId destImg,
                          FF_ImgChanType horizontalChannel,
                          FF_ImgChanType verticalChannel,
                          UT_Bool wrap)

  Tcl usage:      $destImg ComputeChannelDerivates srcImg srcChannel horizontalChannel verticalChannel ?wrap=true?

  Description:    For each pixel in channel "srcChannel" of image "srcImg",
                  the differences between the pixel and its left and bottom
                  neighbors are computed.
                  The result is stored in the "horizontalChannel" and
                  "verticalChannel" channels of image "destImg":

                      horizontalChannel (x, y) = 0.5 + srcChannel (x, y) - srcChannel (x-1, y)
                      verticalChannel   (x, y) = 0.5 + srcChannel (x, y) - srcChannel (x, y-1)

                  The "wrap" flag determines the differences computed
                  at the left and bottom borders of the source image.
                  If "wrap" is set to UT_True, IP_ComputeChannelDerivates
                  assumes that

                      srcChannel (-1, y) = srcChannel (w-1, y) and
                      srcChannel (x, -1) = srcChannel (x, h-1),

                  where "w" and "h" are the width and height of "srcImg" in pixels.

                  If "wrap" is set to UT_False, IP_ComputeChannelDerivates
                  assumes that

                      srcChannel (-1, y) = srcChannel (0, y) and
                      srcChannel (x, -1) = srcChannel (x, 0).

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: ChangeChannelGamma RemapChannelValues

Top of page

CopyChannel

  Name:           IP_CopyChannel

  Usage:          Copy the pixel data of one channel in an image into
                  another channel.

  Synopsis:       UT_Bool IP_CopyChannel(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          FF_ImgChanType srcChannel,
                          FF_ImgChanType destChannel)

  Tcl usage:      $destImg CopyChannel srcImg srcChannel destChannel

  Description:    The data from channel "srcChannel" in image "srcImg"
                  are copied to channel "destChannel" in image "destImg".
                  If width or height of the "srcImg" and "destImg"
                  differ, "srcImg" and "destImg" are aligned at the
                  lower left corner, and areas in "destImg", which
                  are not covered by "srcImg", are not affected by
                  IP_CopyChannel.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: CopyImage

Top of page

CopyImage

  Name:           IP_CopyImage

  Usage:          Copy the pixel data of one image into another image.

  Synopsis:       UT_Bool IP_CopyImage(
                          IP_ImageId srcImg,
                          IP_ImageId destImg)

  Tcl usage:      $srcImg  CopyImage destImg:return
                  $destImg CopyImage srcImg

  Description:    The data from all channels in image "srcImg"
                  are copied to image "destImg".
                  If width or height of the "srcImg" and "destImg"
                  differ, "srcImg" and "destImg" are aligned at the
                  lower left corner, and areas in "destImg", which
                  are not covered by "srcImg", are not affected by
                  IP_CopyImage.

                  Tcl note: The function can be called in two ways.
                  1. The destination image is created by the Tcl wrapper
                     and returned by the function.
                  2. Direct mapping of the C function, where the destination
                     image has to be supplied by the caller. The caller is
                     responsible for correct image format and size.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: CopyChannel

Top of page

CopyRect

  Name:           IP_CopyRect

  Usage:          Copy the pixels inside a rectangular source region in
                  an image to a destination region in another image.

  Synopsis:       void IP_CopyRect(
                       IP_ImageId srcImg,
                       IP_ImageId destImg,
                       Int32 xs1, Int32 ys1,
                       Int32 xs2, Int32 ys2,
                       Int32 xd1, Int32 yd1)

  Tcl usage:      $destImg CopyRect srcImg xs1 ys1 xs2 ys2 xd1 yd1

  Description:    One corner of the source region is at position
                  (xs1, ys1) in image "srcImg". The diagonally opposite
                  corner of the source region is at position (xs2, ys2).
                  The corner of the destination region, which corresponds
                  to (xs1, ys1) in the source region, is at position
                  (xd1, yd1) in image "destImg".

                  Note: The source and destination regions may be
                  overlapping regions in the same image.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawRect BlankRect WrapRect

Top of page

CorrelateChannel

  Name:           IP_CorrelateChannel

  Usage:          Compute the correlation coefficient for two
                  sets of pixels.

  Synopsis:       UT_Bool IP_CorrelateChannel(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          FF_ImgChanType channel,
                          Int32 xs1, Int32 ys1,
                          Int32 xs2, Int32 ys2,
                          Int32 xd1, Int32 yd1,
                          Float32 *correlationFactor)

  Tcl usage:      $destImg CorrelateChannel srcImg channel xs1 ys1 xs2 ys2 xd1 yd1 correlationFactor:return

  Description:    Two pixel positions, (xs1, ys1) and (xs2, ys2),
                  specify the lower left and upper right corners of
                  a rectangle S in image "srcImg".
                  A second rectangle, D in image "destImg" with the
                  same size as S, is specified by the position of
                  the pixel at the lower left corner, (xd1,  yd1).

                  IP_CorrelateChannel treats the pixel data in
                  channel "channel" of S and D as samples from two
                  random variables and computes their correlation
                  coefficient.
                  The correlation coefficient is in the range from
                  -1.0 to 1.0.  It can be used as a measure for the
                  similarity of the patterns formed by the pixels in
                  the two rectangles.

                  For more detailed explanations of the correlation
                  coefficient, see textbooks on these topics, e.g.

                          Robert V. Hook, Allen T. Craig,
                          "Introduction to Mathematical Statistics",
                          Macmillan Publishing Co.,
                          4th ed. 1978,
                          pp 73 ff.

                          Bernd Jaehne,
                          "Digitale Bildverarbeitung",
                          Springer Verlag,
                          2nd ed. 1991,
                          pp 225 ff.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   If the correlation coefficient was computed
                  successfully, it is stored in "correlationFactor" and
                  IP_CorrelateChannel returns UT_True.
                  No error code is set.

                  If the correlation coefficient could not be computed,
                  because the variance of the pixel data in S or D is zero,
                  some value less than -1.0 is stored in "correlationFactor"
                  and IP_CorrelateChannel returns UT_True.
                  No error code is set.

                  If the correlation coefficient could not be computed
                  because of an invalid parameter specification or an
                  arithmetic exception, IP_CorrelateChannel returns
                  UT_False. An error code is stored in UT_ErrNum.

See also: FindChannelPattern

Top of page

CreateBrushImage

   Name:           poImgUtil::CreateBrushImage

   Usage:          Create a brush image.

   Tcl usage:      CreateBrushImage { img channel }

                   img:     image
                   channel: Channel type number or name

   Description:    Use channel "channel" of image "img" to
                   create a new image suitable as a brush image.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The brush image if successful. Otherwise an error is thrown.

See also: DrawBrush

Top of page

CreateChannelNoise

  Name:           IP_CreateChannelNoise

  Usage:          Fill one channel of an image with fractal noise.

  Synopsis:       UT_Bool IP_CreateChannelNoise(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          Int32 seed, Int32 period,
                          Int32 coherency, Float32 slice)

  Tcl usage:      $img CreateChannelNoise channel seed period coherency slice

  Description:    Channel "channel" of image "img" is filled with fractal
                  noise: A pseudo-random value in the range from 0.0 to
                  1.0 is assigned to every pixel so that pixels, which
                  are close to each other, are likely to receive similar
                  values.
                  The fractal noise pattern is generated from a seed
                  value, "seed", for a pseudo-random number generator.
                  The pattern is three-dimensional, and the values
                  written into "img" represent a two-dimensional slice
                  of it. The position of the slice is selected by the
                  value of "slice", so that sequences of slices from the
                  same noise pattern can be generated by stepping
                  through different "slice" values.
                  The noise pattern is periodic in x, y, (i.e.
                  horizontal and vertical) and z direction with a
                  period length of (1 << period) pixels.
                  The "coherency" parameter determines how coherent the
                  noise pattern is. The pattern becomes more and more
                  incoherent when "coherency" increases.
                  "coherency" should be in the range from 0 to period-1.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All (Range [0.0, 1.0]

  Return value:   UT_True if successful, else UT_False.

See also: JuliaSet Mandelbrot

Top of page

CrossDissolve

  Name:           IP_CrossDissolve

  Usage:          Cross-dissolve between two images.

  Synopsis:       UT_Bool IP_CrossDissolve(
                          IP_ImageId fgImg,
                          IP_ImageId bgImg,
                          IP_ImageId destImg,
                          Float32 mixFactor)

  Tcl usage:      $destImg CrossDissolve fgImg bgImg mixFactor

  Description:    Cross-dissolve between image "fgImg"
                  and "bgImg". The result is stored in "destImg":

                  The pixel data for "destImg" are combined from
                  the data in "fgImg" and "bgImg" ("mixFactor" should be
                  in the range from 0.0 to 1.0):

                         cm.pixel = fg.pixel * mixFactor + bg.pixel * (1-mixFactor)

                  Notes:

                  - If necessary, "fgImg" or "bgImg" can be
                    identical to "destImg", so that IP_CrossDissolve
                    overwrites one of the input images with the
                    result.

                  - IP_CrossDissolve does not write to the
                    FF_ImgChanTypeHoriSnr, FF_ImgChanTypeVertSnr,
                    FF_ImgChanTypeDepth, FF_ImgChanTypeTemperature
                    and FF_ImgChanTypeRadiance channels in "destImg",
                    even if the drawing mask for these channels is set.

                  - For cross-dissolving, "fgImg", "bgImg" and
                    "destImg" are aligned at the lower left corner.
                    If "destImg" is wider or higher than "fgImg" or
                    "bgImg", IP_CrossDissolve does not change areas
                    in "destImg" which are not covered by "fgImg" or
                    "bgImg".

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: RGB, Brightness
                  Float format: RGB, Brightness

  Return value:   UT_True if successful, else UT_False.

See also: CompositeMatte CompositeColorMatte CompositeDepth SetNumThreads

Top of page

CutOff

  Name:           IP_CutOff

  Usage:          Apply a cut-off filter to an image.

  Synopsis:       UT_Bool IP_CutOff(
                          IP_ImageId img,
                          Float32 thresholdMin,
                          Float32 thresholdMax)

  Tcl usage:      $img CutOff thresholdMin ?thresholdMax=1.0?

  Description:    Each pixel of image "img" less than "thresholdMin" is
                  set to 0. Each pixel larger than "thresholdMax" is set
                  to 255 (for UByte channels) resp. 1.0 (for Float channels).
                  All other pixels are left unmodified.
                  The threshold values must be in the range [0.0, 1.0].

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if succesfull, else UT_False.

See also: Threshold

Top of page

D

DeleteChannel

  Name:           IP_DeleteChannel

  Usage:          Delete a channel from an image.

  Synopsis:       UT_Bool IP_DeleteChannel(
                          IP_ImageId img,
                          FF_ImgChanType channel)

  Tcl usage:      $img DeleteChannel channel

  Description:    Free the memory used by channel "channel"
                  of image "img". The pixel format of the
                  deleted channel is set to FF_ImgFmtTypeNone.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: AddChannel

Top of page

DeleteImage

   Name:           poImgUtil::DeleteImage

   Usage:          Delete one or more images.

   Tcl usage:      DeleteImg { args }

                   args: List of images

   Description:    Delete all images specified in list "args".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: NewImage

Top of page

DepthBlur

  Name:           IP_DepthBlur

  Usage:          Blur an image according to a depth channel.

  Synopsis:       UT_Bool IP_DepthBlur(
                          IP_ImageId img,
                          Float32 hori, Float32 vert,
                          Float32 minDepth, Float32 maxDepth)

  Tcl usage:      $img DepthBlur hori ?vert=hori? ?minDepth=-1.0? ?maxDepth=-1.0?

  Description:    The value of every pixel in "img" is distributed
                  over a rectangular area of "hori" by "vert" pixels
                  using a box filter.
                  Only pixels whose depth is between "minDepth" and
                  "maxDepth" are blurred.
                  If the depth of all pixels is the same, no blurring
                  is done.
                  If "minDepth" is negative, the minimum depth of the
                  image is used instead.
                  If "maxDepth" is negative, the maximum depth of the
                  image is used instead.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Blur SetNumThreads

Top of page

DiffChannel

  Name:           IP_DiffChannel

  Usage:          Obtain the channel difference of two images.

  Synopsis:       UT_Bool IP_DiffChannel(
                          IP_ImageId srcImg1,
                          IP_ImageId srcImg2,
                          FF_ImgChanType channel,
                          Int32 lessList1[256],
                          Int32 lessList2[256])

  Tcl usage:      $srcImg1 DiffChannel srcImg2 channel lessList1:out lessList2:out

  Description:    Channel "channel" of images "srcImg1" and "srcImg2"
                  is read to see how much they differ.

                  The following notation is used:

                  0 < val < 256:
                      lessList1[val] == sum    "sum" pixels in image "srcImg1"
                                               have a channel value which
                                               is "val" less than the value
                                               of image "srcImg2".

                      lessList2[val] == sum    "sum" pixels in image "srcImg2"
                                               have a channel value which
                                               is "val" less than the value
                                               of image "srcImg1".

                  val == 0:
                      lessList1[val] == sum    "sum" pixels don't differ.

                      lessList2[val]           always zero.

                  Note:
                      - Only channels in FF_ImgFmtTypeUByte are allowed.
                      - The two images must be equal in width and height.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: No

  Return value:   UT_True if successful, else UT_False.

See also: DifferenceImage

Top of page

DifferenceImage

  Name:           IP_DifferenceImage

  Usage:          Generate a difference image of two images.

  Synopsis:       UT_Bool IP_DifferenceImage(
                          IP_ImageId srcImg1,
                          IP_ImageId srcImg2,
                          IP_ImageId destImg)

  Tcl usage:      $srcImg2 DifferenceImage srcImg1 destImg:return
                  $destImg DifferenceImage srcImg1 srcImg2

  Description:    The difference of all pixels of images "srcImg1"
                  and "srcImg2" is computed and stored in image "destImg":

                      destImg[x,y] = abs (srcImg1[x,y] - srcImg2[x,y])

                  Tcl note: The function can be called in two ways.
                  1. The destination image is created by the Tcl wrapper
                     and returned by the function.
                  2. Direct mapping of the C function, where the destination
                     image has to be supplied by the caller. The caller is
                     responsible for correct image format and size.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: MarkNonZeroPixels

Top of page

Dilatation

  Name:           IP_Dilatation

  Usage:          Dilatation (expansion) of bright areas of an image.

  Synopsis:       UT_Bool IP_Dilatation(
                          IP_ImageId img,
                          Int32 count)

  Tcl usage:      $img Dilatation ?count=1?

  Description:    A three by three pixel wide dilatation filter is
                  applied "count" times to image "img".

                  The dilatation filter expands bright areas in
                  the image and eliminates dark pixels.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Erosion Median

Top of page

DrawAALine

  Name:           IP_DrawAALine

  Usage:          Draw an antialiased line.

  Synopsis:       void IP_DrawAALine(
                       IP_ImageId img,
                       Float32 x1, Float32 y1,
                       Float32 x2, Float32 y2,
                       const Float32 colorList1[FF_NumImgChanTypes],
                       const Float32 colorList2[FF_NumImgChanTypes])

  Tcl usage:      $img DrawAALine x1 y1 x2 y2 colorList1 ?colorList2=colorList1?

  Description:    A line is drawn from position (x1, y1) to position
                  (x2, y2) in image "img". The unit for "x1" and "x2"
                  is the width of a pixel in "img"; the unit for "y1"
                  and "y2" is the height of a pixel.
                  The line's colors at (x1, y1) and (x2, y2) are taken
                  from "colorList1" and "colorList2".
                  The color at in-between positions is interpolated linearly.

                  Note:
                  - Draw mode IP_DrawModeAdd mode is used.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawLine DrawAAPixel DrawAAText

Top of page

DrawAAPixel

  Name:           IP_DrawAAPixel

  Usage:          Draw an antialiased point.

  Synopsis:       void IP_DrawAAPixel(
                       IP_ImageId img,
                       Float32 x, Float32 y,
                       const Float32 colorList[FF_NumImgChanTypes])

  Tcl usage:      $img DrawAAPixel x y colorList

  Description:    A point is drawn at position (x, y) in image "img".
                  The units for "x" and "y" are width and height of
                  a pixel in "img".
                  The point's color is taken from "colorList".

                  Note:
                  - Draw mode IP_DrawModeAdd mode is used.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawPixel DrawAALine DrawAAText

Top of page

DrawAAText

  Name:           IP_DrawAAText

  Usage:          Draw an antialiased text string.

  Synopsis:       void IP_DrawAAText(
                       IP_ImageId img,
                       Float32 x, Float32 y,
                       const char *string,
                       const Float32 colorList[FF_NumImgChanTypes])

  Tcl usage:      $img DrawAAText x y string colorList

  Description:    A text string "string" is drawn into image "img".
                  The lower left corner of the first character in
                  "string" is drawn at position (x, y).
                  The text string's color is taken from "colorList".

                  Note:
                  - Draw mode IP_DrawModeAdd mode is used.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawText DrawAAPixel DrawAALine

Top of page

DrawBrush

  Name:           IP_DrawBrush

  Usage:          Draw a brush stroke into an image.

  Synopsis:       UT_Bool IP_DrawBrush(
                          IP_ImageId img,
                          IP_ImageId brushImg,
                          Int32 x, Int32 y,
                          Float32 intensity)

  Tcl usage:      $img DrawBrush brushImg x y ?intensity=1.0?

  Description:    Draw a brush stroke into image "img" at pixel (x, y).
                  The brush is defined in image "brushImg".
                  The intensity (or pressure) of the stroke is
                  specified in "intensity". Valid intensity values
                  are in the range of [0.0, 1.0], where 1.0 means
                  full intensity. Values outside of this range are
                  automatically clipped to 0.0 or 1.0.

                  Notes:
                     - The brush shape is taken from the
                       FF_ImgChanTypeBrightness channel of image "brushImg".
                       This channel has to be in FF_ImgFmtTypeFloat
                       format with values in the range of [0.0, 1.0].
                     - The origin of the brush is the lower left corner
                       of the brush image.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: DrawBrushLine MergeBrush DrawPixel

Top of page

DrawBrushLine

  Name:           IP_DrawBrushLine

  Usage:          Draw a line of brush strokes into an image.

  Synopsis:       void IP_DrawBrushLine(
                       IP_ImageId img,
                       IP_ImageId brushImg,
                       Int32 x1, Int32 y1, Int32 x2, Int32 y2,
                       Int32 strokes, Float32 intensity)

  Tcl usage:      $img DrawBrushLine brushImg x1 y1 x2 y2 ?strokes=1? ?intensity=1.0?

  Description:    Draw a line of brush strokes from pixel (x1, y1)
                  to pixel (x2, y2) in image "img".

                  See IP_DrawBrush for the requirements of a brush image.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawLine DrawBrush MergeBrush

Top of page

DrawCircle

  Name:           IP_DrawCircle

  Usage:          Draw a circle into an image.

  Synopsis:       void IP_DrawCircle(
                       IP_ImageId img,
                       Int32 cx, Int32 cy,
                       Int32 radius, UT_Bool fill)

  Tcl usage:      $img DrawCircle cx cy radius ?fill=true?

  Description:    Draw a filled circle into image "img", if "fill" is
                  set to UT_True. Otherwise draw a circle outline.
                  The center of the circle is at pixel (cx, cy).
                  The radius is given by "radius".

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawPixel DrawLine DrawRect DrawEllipse DrawBrush

Top of page

DrawEllipse

  Name:           IP_DrawEllipse

  Usage:          Draw an ellipse into an image.

  Synopsis:       void IP_DrawEllipse(
                       IP_ImageId img,
                       Int32 cx, Int32 cy,
                       Int32 radius1, Int32 radius2,
                       UT_Bool fill)

  Tcl usage:      $img DrawEllipse cx cy radius1 radius2 ?fill=true?

  Description:    Draw a filled ellipse into image "img", if "fill" is
                  set to UT_True. Otherwise draw an ellipse outline.
                  The horizontal radius is given by "radius1", the
                  vertical radius by "radius2".

                  Note: Outline drawing is currently not supported.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawPixel DrawLine DrawRect DrawCircle DrawBrush

Top of page

DrawLine

  Name:           IP_DrawLine

  Usage:          Draw a line into an image.

  Synopsis:       void IP_DrawLine(
                       IP_ImageId img,
                       Int32 x1, Int32 y1,
                       Int32 x2, Int32 y2,
                       Int32 stipple)

  Tcl usage:      $img DrawLine x1 y1 x2 y2 ?stipple=1?

  Description:    Draw a line from pixel (x1, y1) to pixel (x2, y2)
                  in image "img". Draw a pixels of the line every
                  "stipple" time. A "stipple" value of 1 draws a
                  solid line.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawPixel DrawCircle DrawEllipse DrawBrushLine DrawText DrawAALine

Top of page

DrawPixel

  Name:           IP_DrawPixel

  Usage:          Draw a point into an image.

  Synopsis:       void IP_DrawPixel(
                       IP_ImageId img,
                       Int32 x, Int32 y)

  Tcl usage:      $img DrawPixel x y

  Description:    Draw a point at pixel (x, y) in image "img".

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawLine DrawCircle DrawEllipse DrawBrush DrawText DrawAAPixel GetPixel

Top of page

DrawRect

  Name:           IP_DrawRect

  Usage:          Draw a rectangle into an image.

  Synopsis:       void IP_DrawRect(
                       IP_ImageId img,
                       Int32 x1, Int32 y1,
                       Int32 x2, Int32 y2,
                       UT_Bool fill)

  Tcl usage:      $img DrawRect x1 y1 x2 y2 ?fill=true?

  Description:    Draw a rectangle into image "img".
                  One corner of the rectangle is located at pixel (x1, y1).
                  The diagonally opposite corner is at pixel (x2, y2).
                  If "fill" is UT_True, the rectangle is filled,
                  otherwise only the outline is drawn.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawPixel DrawLine DrawCircle DrawEllipse DrawBrush DrawText

Top of page

DrawReticle

   Name:           poImgUtil::DrawReticle

   Usage:          Draw a reticle into an image.

   Tcl usage:      DrawReticle { img holeSize numCircles circleRadius circleIncr }

                   img:          image
                   holeSize:     integer
                   numCircles:   integer
                   circleRadius: integer
                   circleIncr:   integer

   Description:    Draw a reticle into image "img".
                   A reticle consists of 2 horizontal and 2 vertical
                   lines positioned at the image center. If "holeSize"
                   is zero, the lines meet at the image center.
                   Otherwise a circle with diameter of "holeSize" is
                   drawn at the image center.

                   Additional circles can be specified by setting
                   "numCircles" to a value greater than zero. The
                   initial radius of the first circle is given with
                   "circleRadius". The radius of all other circles
                   is incremented by "circleIncr".

   States:         State settings influencing functionality:
                   Draw mask:    Yes
                   Draw mode:    No
                   Draw color:   Yes
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: DrawLine DrawCircle

Top of page

DrawText

  Name:           IP_DrawText

  Usage:          Draw a text string into an image.

  Synopsis:       void IP_DrawText(
                       IP_ImageId img,
                       Int32 x, Int32 y,
                       const char *string)

  Tcl usage:      $img DrawText x y string

  Description:    Draw text string "string" into image "img".
                  The lower left corner of the first character
                  drawn is at position (x, y).

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: DrawAAText GetTextSize GetTextScale SetTextScale DrawPixel

Top of page

E

Erosion

  Name:           IP_Erosion

  Usage:          Erosion (contraction) of bright areas of an image.

  Synopsis:       UT_Bool IP_Erosion(
                          IP_ImageId img,
                          Int32 count)

  Tcl usage:      $img Erosion ?count=1?

  Description:    A three by three pixel wide erosion filter is
                  applied "count" times to image "img".

                  The erosion filter contracts bright areas in
                  the image and eliminates bright pixels.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Dilatation Median

Top of page

F

FindChannelPattern

  Name:           IP_FindChannelPattern

  Usage:          Attempt to find a given pattern in an image.

  Synopsis:       UT_Bool IP_FindChannelPattern
                          (IP_ImageId srcImg1,
                           IP_ImageId srcImg2,
                           FF_ImgChanType channel,
                           Int32 xs1, Int32 ys1,
                           Int32 xs2, Int32 ys2,
                           Int32 xd1, Int32 yd1,
                           Int32 xd2, Int32 yd2,
                           Float32 *xp, Float32 *yp,
                           Float32 *rp)

  Tcl usage:      $srcImg1 FindChannelPattern srcImg2 channel xs1 ys1 xs2 ys2 xd1 yd1 xd2 yd2 xp:out yp:out rp:out

  Description:    Two pixel positions, (xs1, ys1) and (xs2, ys2),
                  specify the lower left and upper right corners of
                  a rectangle, S, in channel "channel" of image "srcImg1".
                  A second rectangle, D, in channel "channel" of image
                  "srcImg2", which must be at least as wide and high as
                  S, is specified by the positions of its lower left
                  and upper right corners, (xd1, yd1) and (xd2, yd2).

                  The pixel data in S form a pattern. IP_FindChannelPattern
                  tries to find an occurrence of this pattern in the
                  pixel data in D:
                  The pixel at the lower left corner of S is aligned
                  with some pixel in D, and the correlation coefficient
                  of the pixels in S and the pixels in D at the same
                  positions is computed.
                  This process is repeated, shifting S across D pixel
                  by pixel, and computing the corresponding correlation
                  coefficients, until the maximum correlation between
                  S and D has been found.
                  The maximum correlation coeffcient, and the position
                  of the lower left corner of S (relative to the lower
                  left corner of "srcImg2") are returned in "rp", "xp"
                  and "yp".

                  "xp", "yp" and "rp" can be interpreted as follows:
                  The pattern formed by the pixels in S also occurs in D.
                  The lower left corner of the pattern's occurence in D
                  is at position (xp, yp).
                  "rp" indicates how well the pattern and its occurrence
                  in D match.  "rp" is usually in the range from -1.0 to
                  1.0, with higher values indicating a better match.
                  "rp" values of 0.0 and below suggest that the pattern
                  does not occur in D at all, and that the values of "xp"
                  and "yp" are not usable.

                  Notes:

                  - IP_FindChannelPattern does not detect multiple occurences
                    of the pattern in D. If the pattern occurs more than
                    once, IP_FindChannelPattern selects an arbitray
                    occurrence and returns its position.

                  - The computation time for IP_FindChannelPattern is
                    proportional to the number of pixels in S and to
                    the number of pixels in D. Finding an occurrence
                    of a big pattern or searching a large area can be
                    a lengthy process. If the pattern to be found has
                    features significantly larger than a single pixel,
                    computation times can be reduced by scaling the
                    pattern and the region to be searched down to a
                    lower resolution and doing a rough search to limit
                    the search area before trying to find the exact
                    position of the original pattern in the original
                    image.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   If "xp", "yp" and "rp" were computed successfully,
                  IP_FindChannelPattern returns UT_True.
                  No error code is set.

                  If the search for the pattern failed because
                  the variance of the pixels in S or in D is zero,
                  some value less than -1.0 is stored in "rp" and
                  IP_FindChannelPattern returns UT_True.
                  No error code is set.

                  If the search failed because of an invalid
                  parameter specification or an arithmetic exception,
                  IP_FindChannelPattern returns UT_False.
                  An error code is stored in UT_ErrNum.

See also: CorrelateChannel SetNumThreads

Top of page

Flicker

  Name:           IP_Flicker

  Usage:          Prepare an image for display on interlaced video.

  Synopsis:       UT_Bool IP_Flicker(IP_ImageId img)

  Tcl usage:      $img Flicker

  Description:    Image "img" is filtered so that flickering is reduced
                  when the image is displayed on a video monitor with
                  interlaced scanning: The pixel data in each scan line
                  are mixed with the data from the scan line immediately
                  above.

                  Note:
                  - The filtered image will look slightly blurred,
                    and it will be shifted vertically by 0.5 pixels.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Interlace Unlace SetNumThreads

Top of page

FlipDiagonal

  Name:           IP_FlipDiagonal

  Usage:          Flip an image diagonally.

  Synopsis:       void IP_FlipDiagonal(IP_ImageId img)

  Tcl usage:      $img FlipDiagonal

  Description:    Image "img" is mirrored about the (x == y) axis, i.e.
                  pixel rows change into columns and columns change into
                  rows.
                  If width and height of "img" in pixels are not equal,
                  the original and the mirror image do not cover each
                  other completely, and pixels in the original image for
                  which no couterpart exists in the mirror image are not
                  changed by IP_FlipDiagonal.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: FlipHorizontal FlipVertical Rotate90

Top of page

FlipHorizontal

  Name:           IP_FlipHorizontal

  Usage:          Flip an image around the horizontal axis.

  Synopsis:       void IP_FlipHorizontal(IP_ImageId img)

  Tcl usage:      $img FlipHorizontal

  Description:    Flip an image around the horizontal (x) mid axis.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: FlipDiagonal FlipVertical Rotate90

Top of page

FlipVertical

  Name:           IP_FlipVertical

  Usage:          Flip an image around the vertical axis.

  Synopsis:       void IP_FlipVertical(IP_ImageId img)

  Tcl usage:      $img FlipVertical

  Description:    Flip an image around the vertical (y) mid axis.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: FlipDiagonal FlipHorizontal Rotate90

Top of page

G

GetChannelFormat

  Name:           IP_GetChannelFormat

  Usage:          Get the numeric value of a channel format name.

  Synopsis:       UT_Bool IP_GetChannelFormat(
                          const char *channelFormatName,
                          FF_ImgFmtType *channelFormat)

  Tcl usage:      poImageState GetChannelFormat channelFormatName channelFormat:return

  Description:    The numeric value of channel format name
                  "channelFormatName" is returned in "channelFormat".

                  Possible format names:
                      "NONE", "UBYTE", "FLOAT"

  Return value:   UT_True, if successful, otherwise UT_False.

See also: GetChannelFormatName GetDrawModeType GetFillModeType GetChannelType GetUnlaceModeType

Top of page

GetChannelFormatName

  Name:           IP_GetChannelFormatName

  Usage:          Get the name of a channel format.

  Synopsis:       const char *IP_GetChannelFormatName(
                              FF_ImgFmtType channelFormat)

  Tcl usage:      poImageState GetChannelFormatName channelFormat channelFormatName:return

  Description:    Possible channel format names:
                      "NONE", "UBYTE", "FLOAT"

  Return value:   A pointer to the name of the channel format.

See also: GetChannelFormat GetDrawModeTypeName GetFillModeTypeName GetChannelTypeName GetUnlaceModeTypeName

Top of page

GetChannelHistogram

  Name:           IP_GetChannelHistogram

  Usage:          Obtain a histogram of one channel of an image.

  Synopsis:       UT_Bool IP_GetChannelHistogram(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          Int32 histogramList[256])

  Tcl usage:      $img GetChannelHistogram channel histogramList:out

  Description:    A histogram of channel "channel" of image "img" is
                  generated. The result is returned in "histogramList".

                  A histogram shows the distribution of pixel values.
                  The range from 0.0 to 1.0 is scaled into the range
                  from 0 to 255; pixel values, which are less than 0
                  or greater than 255 after scaling, are clamped to
                  0 or 255. For every pixel, whose scaled value is "i",
                  histogramList[i] is incremented by 1.
                  For example, (histogramList[5] == 45) means that there
                  are 45 pixels in the image, whose scaled pixel value is 5.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: GetChannelStats GetChannelRange

Top of page

GetChannelRange

  Name:           IP_GetChannelRange

  Usage:          Obtain the range of an image channel.

  Synopsis:       UT_Bool IP_GetChannelRange(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          Int32 x1, Int32 y1,
                          Int32 x2, Int32 y2,
                          Float32 *minValue, Float32 *maxValue)

  Tcl usage:      $img GetChannelRange channel x1 y1 x2 y2 minValue:out maxValue:out

  Description:    Channel "channel" of image "img" is scanned.
                  If the values for rectangle "x1, y1" and "x2, y2"
                  are set to a negative value (eg. -1), the whole
                  image is used for scanning. Otherwise only the
                  pixels within the rectangle are considered.
                  The minimum resp. maximum channel values are returned
                  in "minValue" resp. "maxValue".

                  Note: The values are always returned in floating point
                  format.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: GetChannelStats GetChannelHistogram

Top of page

GetChannelStats

  Name:           IP_GetChannelStats

  Usage:          Obtain statistics of an image channel.

  Synopsis:       UT_Bool IP_GetChannelStats(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          Int32 x1, Int32 y1,
                          Int32 x2, Int32 y2,
                          Float32 *meanValue,
                          Float32 *stdDev,
                          UInt32 *numPixels,
                          UT_Bool useMatte)

  Tcl usage:      $img GetChannelStats channel x1 y1 x2 y2 meanValue:out ?stdDev:out? ?numPixels:out? ?useMatte=false?

  Description:    Channel "channel" of image "img" is scanned.
                  If the values for rectangle "x1, y1" and "x2, y2"
                  are set to a negative value (eg. -1), the whole
                  image is used for scanning. Otherwise only the
                  pixels within the rectangle are considered.
                  The arithmetic mean value of all pixels in the
                  channel is returned in parameter "meanValue".
                  The standard deviation is returned in "stdDev".
                  If "useMatte" is set to UT_True, only the pixels
                  with a matte value unequal to zero are taken into
                  consideration.
                  The number of pixels used to calculate the statistics
                  is returned in parameter "numPixels".
                  In the simple case, when "useMatte" is UT_False and
                  the whole image is considered, this value equals
                  to the product of the image width and height.

                  Note: The mean value and standard deviation are
                        always returned as floating point value, even
                        if the channel is of type FF_ImgFmtUByte.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: GetChannelRange GetChannelHistogram

Top of page

GetChannelType

  Name:           IP_GetChannelType

  Usage:          Get the numeric value of a channel type name.

  Synopsis:       UT_Bool IP_GetChannelType(
                          const char *channelTypeName,
                          FF_ImgChanType *channelType)

  Tcl usage:      poImageState GetChannelType channelTypeName channelType:return

  Description:    The numeric value of channel type name
                  "channelTypeName" is returned in "channelType".

                  Possible channel type names:
                      "NONE", "BW", "RED", "GREEN", "BLUE",
                      "MATTE", "REDMATTE", "GREENMATTE", "BLUEMATTE",
                      "HORINORMAL", "VERTNORMAL", "DEPTH",
                      "TEMPERATURE", "RADIANCE".

  Return value:   UT_True, if successful, otherwise UT_False.

See also: GetChannelTypeName GetDrawModeType GetFillModeType GetChannelFormat GetUnlaceModeType

Top of page

GetChannelTypeName

  Name:           IP_GetChannelTypeName

  Usage:          Get the name of a channel type.

  Synopsis:       const char *FF_ImgGetChannelTypeName(
                              FF_ImgChanType channelType)

  Tcl usage:      poImageState GetChannelTypeName channelType channelTypeName:return

  Description:    Possible channel type names:
                      "NONE", "BW", "RED", "GREEN", "BLUE",
                      "MATTE", "REDMATTE", "GREENMATTE", "BLUEMATTE",
                      "HORINORMAL", "VERTNORMAL", "DEPTH",
                      "TEMPERATURE", "RADIANCE"
                      "UNKNOWN" for invalid channel type.

  Return value:   A pointer to the name of the channel type.

See also: GetChannelType GetDrawModeTypeName GetFillModeTypeName GetChannelFormatName GetUnlaceModeTypeName

Top of page

GetChannelTypeNames

   Name:           poImgUtil::GetChannelTypeNames

   Usage:          Get all channel type names.

   Tcl usage:      GetChannelTypeNames {}

   Description:    Get all channel type names.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The channel type names as a list of strings.

See also: poImgUtil::GetDefaultFormat SetFormat

Top of page

GetColorCorrect

  Name:           IP_GetColorCorrect

  Usage:          Get the current color correction parameters.

  Synopsis:       void IP_GetColorCorrect(
                       Float32 *gamma,
                       CIE_hue *red,
                       CIE_hue *green,
                       CIE_hue *blue,
                       CIE_hue *white)

  Tcl usage:      poImageState GetColorCorrect gamma:out ?rx:out? ?ry:out? ?gx:out? ?gy:out? ?bx:out? ?by:out? ?wx:out? ?wy:out?

  Description:    Get the current gamma and color correction parameters.

  Return value:   None.

See also: SetColorCorrect GetDrawMask GetDrawMode GetDrawColor GetFormat PushState PopState

Top of page

GetDefaultDrawColor

   Name:           poImgUtil::GetDefaultDrawColor

   Usage:          Get default draw color.

   Tcl usage:      GetDefaultDrawColor {}

   Description:    Get the default draw color.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The default draw color as a list of floats.

See also: poImgUtil::GetDefaultDrawMask poImgUtil::GetDefaultDrawMode poImgUtil::GetDefaultFormat SetDrawColor

Top of page

GetDefaultDrawMask

   Name:           poImgUtil::GetDefaultDrawMask

   Usage:          Get default draw mask.

   Tcl usage:      GetDefaultDrawMask {}

   Description:    Get the default draw mask.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The default draw mask as a list of booleans.

See also: poImgUtil::GetDefaultDrawColor poImgUtil::GetDefaultDrawMode poImgUtil::GetDefaultFormat SetDrawMask

Top of page

GetDefaultDrawMode

   Name:           poImgUtil::GetDefaultDrawMode

   Usage:          Get default draw mode.

   Tcl usage:      GetDefaultDrawMode {}

   Description:    Get the default draw mode.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The default draw mode as a list of enumeration
                   values: REPLACE ADD SUB XOR.

See also: poImgUtil::GetDefaultDrawColor poImgUtil::GetDefaultDrawMask poImgUtil::GetDefaultFormat SetDrawMode

Top of page

GetDefaultFormat

   Name:           poImgUtil::GetDefaultFormat

   Usage:          Get default pixel formats.

   Tcl usage:      GetDefaultFormat {}

   Description:    Get the default pixel formats.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The default formats as a list of format
                   enumeration values: NONE, UBYTE, FLOAT.

See also: poImgUtil::GetDefaultDrawColor poImgUtil::GetDefaultDrawMask poImgUtil::GetDefaultFormat SetDrawMode

Top of page

GetDrawColor

  Name:           IP_GetDrawColor

  Usage:          Get the current draw color.

  Synopsis:       void IP_GetDrawColor(
                       Float32 drawColorList[FF_NumImgChanTypes])

  Tcl usage:      poImageState GetDrawColor drawColorList:out

  Description:    Get the current draw color in "drawColorList".

  Return value:   None.

See also: SetDrawColor GetDrawMask GetDrawMode GetColorCorrect GetFormat PushState PopState

Top of page

GetDrawMask

  Name:           IP_GetDrawMask

  Usage:          Get the current draw mask.

  Synopsis:       void IP_GetDrawMask(
                       UT_Bool drawMaskList[FF_NumImgChanTypes])

  Tcl usage:      poImageState GetDrawMask drawMaskList:out

  Description:    Get the current draw mask in "drawMaskList".

  Return value:   None.

See also: SetDrawMask GetDrawColor GetDrawMode GetColorCorrect GetFormat PushState PopState

Top of page

GetDrawMode

  Name:           IP_GetDrawMode

  Usage:          Get the current draw mode.

  Synopsis:       void IP_GetDrawMode(
                       IP_DrawModeType drawModeList[FF_NumImgChanTypes])

  Tcl usage:      poImageState GetDrawMode drawModeList:out

  Description:    Get the current draw mode in "drawModeList".

  Return value:   None.

See also: SetDrawMode GetDrawMask GetDrawColor GetColorCorrect GetFormat PushState PopState

Top of page

GetDrawModeType

  Name:           IP_GetDrawModeType

  Usage:          Get the numeric value of a draw mode name.

  Synopsis:       UT_Bool IP_GetDrawModeType(
                          const char *drawModeTypeName,
                          IP_DrawModeType *drawModeType)

  Tcl usage:      poImageState GetDrawModeType drawModeTypeName drawModeType:return

  Description:    The numeric value of draw mode name "drawModeTypeName"
                  is returned in "drawModeType".

                  Possible draw mode names:
                      "REPLACE", "ADD", "SUB", "XOR"

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   UT_True, if successful, otherwise UT_False.

See also: GetDrawModeTypeName GetChannelType GetFillModeType GetChannelFormat GetUnlaceModeType

Top of page

GetDrawModeTypeName

  Name:           IP_GetDrawModeTypeName

  Usage:          Get the name of a draw mode type.

  Synopsis:       const char *IP_GetDrawModeTypeName(
                              IP_DrawModeType drawModeType)

  Tcl usage:      poImageState GetDrawModeTypeName drawModeType drawModeTypeName:return

  Description:    Possible draw mode type names:
                      "REPLACE", "ADD", "SUB", "XOR"
                      "UNKNOWN" for invalid draw mode type.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   A pointer to the name of the draw mode type.

See also: GetDrawModeType GetChannelTypeName GetFillModeTypeName GetChannelFormatName

Top of page

GetFileFormat

  Name:           IP_GetFileFormat

  Usage:          Read the image format from a file.

  Synopsis:       UT_Bool IP_GetFileFormat(
                          const char *fileName,
                          FF_ImgFmtType formatList[FF_NumImgChanTypes])

  Tcl usage:      poImageState GetFileFormat fileName formatList:out

  Description:    The header of pixel file "fileName" is read.
                  The pixel data formats of the channels stored in the
                  file are written to "formatList".

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: GetFileInfo GetImageInfo

Top of page

GetFileInfo

  Name:           IP_GetFileInfo

  Usage:          Read the image descriptor from a file.

  Synopsis:       UT_Bool IP_GetFileInfo(
                          const char *fileName,
                          FF_ImgHdr *desc)

  Tcl usage:      poImageState GetFileInfo fileName width:out height:out ?aspect:out? ?gamma:out? ?rx:out? ?ry:out? ?gx:out? ?gy:out? ?bx:out? ?by:out? ?wx:out? ?wy:out?

  Description:    The header of pixel file "fileName" is read. Width,
                  height, aspect ratio, gamma factor and color correction
                  parameters of the image stored in the file are written
                  to "desc".

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: GetFileFormat GetImageInfo

Top of page

GetFillModeType

  Name:           IP_GetFillModeType

  Usage:          Get the numeric value of a fill mode name.

  Synopsis:       UT_Bool IP_GetFillModeType(
                          const char *fillModeTypeName,
                          IP_FillModeType *fillModeType)

  Tcl usage:      poImageState GetFillModeType fillModeTypeName fillModeType:return

  Description:    The numeric value of fill mode name "fillModeTypeName"
                  is returned in "fillModeType".

                  Possible fill mode names:
                      "FILL", "WRAP", "CLIP"

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   UT_True, if successful, otherwise UT_False.

See also: GetFillModeTypeName GetChannelType GetDrawModeType GetChannelFormat

Top of page

GetFillModeTypeName

  Name:           IP_GetFillModeTypeName

  Usage:          Get the name of a fill mode type.

  Synopsis:       const char *IP_GetFillModeTypeName(
                              IP_FillModeType fillModeType)

  Tcl usage:      poImageState GetFillModeTypeName fillModeType fillModeTypeName:return

  Description:    Possible fill mode type names:
                      "REPLACE", "ADD", "SUB", "XOR"
                      "UNKNOWN" for invalid fill mode type.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   A pointer to the name of the fill mode type.

See also: GetFillModeType GetChannelTypeName GetDrawModeTypeName GetChannelFormatName

Top of page

GetFormat

  Name:           IP_GetFormat

  Usage:          Get the current pixel data format.

  Synopsis:       void IP_GetFormat(
                       FF_ImgFmtType formatList[FF_NumImgChanTypes])

  Tcl usage:      poImageState GetFormat formatList:out

  Description:    Get the current pixel data format in "formatList".

  Return value:   None.

See also: SetFormat GetDrawMask GetDrawColor GetDrawMode GetColorCorrect PushState PopState

Top of page

GetHistogram

   Name:           poImgUtil::GetHistogram

   Usage:          Get image histogram.

   Tcl usage:      GetHistogram { img description }

                   img:         image
                   description: string, optional ("")

   Description:    Return the histogram of RGB(A) image "img" as a dictionary.
                   The dictionary has the following keys:
                   - "RED", "GREEN" and "BLUE", each containing a list of 256 values
                     representing the number of pixels with that color value.
                   - "width" and "height" containing the width and the height
                      of the supplied image.
                   - Key "description" can be specified as optional parameter.
                     If "description" is not specified or an empty string,
                     the identifier of "img" is used as the description.

                   If the image has a matte channel, additionally key "MATTE"
                   is set.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: RGB
                   Float format: RGB

   Return Value:   Image histogram as dictionary.

See also: poImgUtil::ScaleHistogram GetChannelHistogram

Top of page

GetImageFormat

  Name:           IP_GetImageFormat

  Usage:          Read the pixel data format of an image.

  Synopsis:       void IP_GetImageInfo(
                       IP_ImageId img,
                       FF_ImgFmtType formatList[FF_NumImgChanTypes])

  Tcl usage:      $img GetImageFormat formatList:out

  Description:    The pixel data formats of the channels in "img"
                  are written to "formatList".

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: GetImageInfo GetFileFormat HasChannel

Top of page

GetImageInfo

  Name:           IP_GetImageInfo

  Usage:          Read the descriptor of an image.

  Synopsis:       void IP_GetImageInfo(
                       IP_ImageId img,
                       FF_ImgHdr *desc)

  Tcl usage:      $img GetImageInfo width:out height:out ?aspect:out? ?gamma:out? ?rx:out? ?ry:out? ?gx:out? ?gy:out? ?bx:out? ?by:out? ?wx:out? ?wy:out?

  Description:    The image descriptor (width, height, aspect ratio,
                  gamma factor and color correction parameters) of
                  image "img" are written to "desc".

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: GetImageFormat GetFileInfo HasChannel

Top of page

GetImageStats

   Name:           poImgUtil::GetImageStats

   Usage:          Get image statistics.

   Tcl usage:      GetImageStats { img x1 y1 x2 y2 }

                   img:        image
                   x1:         integer, optional (-1)
                   y1:         integer, optional (-1)
                   x2:         integer, optional (-1)
                   y2:         integer, optional (-1)

   Description:    Return a dictionary containing image statistics of an
                   RGB(A) image. If the image does not contain red, green
                   and blue channels, an error is thrown.

                   The returned dictionary has the following keys:
                   - "min RED" "min GREEN" "min BLUE" containing the minimum
                     values of the corresponding channels.
                   - "max RED" "max GREEN" "max BLUE" containing the maximum
                     values of the corresponding channels.
                   - "mean RED" "mean GREEN" "mean BLUE" containing the mean
                     values of the corresponding channels.
                   - "std RED" "std GREEN" "std BLUE" containing the standard
                     deviations of the corresponding channels.
                   - "num" containing the number of pixels of the image.

                   If the image has an additional matte channel, the
                   corresponding min, max, mean and std keys are set for "MATTE".

                   (x1, y1) and (x2, y2) define a rectangle for which the
                   image statistics are calculated. If these parameters are
                   not specified or all negative, the statistics is calculated
                   for the complete image.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: RGB
                   Float format: RGB

   Return Value:   Image statistics as dictionary.

See also: GetChannelStats GetChannelRange

Top of page

GetNumThreads

  Name:           IP_GetNumThreads

  Usage:          Get the number of threads used for parallel processing.

  Synopsis:       Int32 IP_GetNumThreads (void)

  Tcl usage:      poImageState GetNumThreads numThreads:return

  Description:    Return the number of threads used for parallel processing.

  Return value:   Return the current number of threads allocated
                  for parallel processing.

See also: SetNumThreads HasThreadSupport

Top of page

GetPixel

  Name:           IP_GetPixel

  Usage:          Get the value of all channels of a pixel.

  Synopsis:       UT_Bool IP_GetPixel(
                          const IP_ImageId img,
                          Int32 x, Int32 y,
                          Float32 colorList[FF_NumImgChanTypes])

  Tcl usage:      $img GetPixel x y colorList:out

  Description:    The value of all channels of pixel (x, y) in image
                  "img" is converted to FF_ImgFmtTypeFloat format
                  and written to "colorList".
                  If a channel is of type FF_ImgFmtTypeNone, the
                  converted value is 0.0.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True, if pixel is inside the boundaries of the image.
                  If (x, y) is outside the boundaries of the image,
                  the content of "colorList" is undefined and
                  UT_False is returned.

See also: GetSample DrawPixel

Top of page

GetSample

  Name:           IP_GetSample

  Usage:          Sample the value of all channels of a pixel.

  Synopsis:       UT_Bool IP_GetSample(
                          IP_ImageId img,
                          Float32 x, Float32 y,
                          Float32 colorList[FF_NumImgChanTypes])

  Tcl usage:      $img GetSample x y colorList:out

  Description:    The value of all channels at image position (x, y)
                  in image "img" is converted to FF_ImgFmtTypeFloat
                  format and  written to "colorList".

                  If (x, y) does not coincide with a pixel's center,
                  the value at position (x, y) is found by bilinear
                  interpolation from the four nearest pixel centers.

                  If a channel is of type FF_ImgFmtTypeNone, the
                  converted value is 0.0.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True, if pixel is inside the boundaries of the image.
                  If (x, y) is outside the boundaries of the image,
                  the content of "colorList" is undefined and
                  UT_False is returned.

See also: GetPixel DrawPixel

Top of page

GetTextScale

  Name:           IP_GetTextScale

  Usage:          Get the text scaling factor.

  Synopsis:       Int32 IP_GetTextScale(void)

  Tcl usage:      poImageState GetTextScale textScale:return

  Description:    Return the text scaling factor.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   Text scaling factor.

See also: GetTextSize SetTextScale DrawText DrawAAText

Top of page

GetTextSize

  Name:           IP_GetTextSize

  Usage:          Get the width and height in pixels of a text string.

  Synopsis:       void IP_GetTextSize(
                       const char *string,
                       Int32 *width, Int32 *height)

  Tcl usage:      poImageState GetTextSize string width:out height:out

  Description:    The width and height in pixels of text string "string"
                  is returned in "width" and "height".
                  If an empty string is given, "width" and "height"
                  are set to 0.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   None.

See also: DrawText DrawAAText GetTextScale SetTextScale

Top of page

GetUnlaceModeType

  Name:           IP_GetUnlaceModeType

  Usage:          Get the numeric value of an unlace mode name.

  Synopsis:       UT_Bool IP_GetUnlaceModeType
                          (const char *unlaceModeTypeName,
                          IP_UnlaceModeType *unlaceModeType)

  Tcl usage:      poImageState GetUnlaceModeType unlaceModeTypeName unlaceModeType:return

  Description:    The numeric value of unlace mode name
                  "unlaceModeTypeName" is returned in "unlaceModeType".

                  Possible unlace mode names:
                      "EXTRACT", "REPLICATE", "INTERPOLATE"

  Return value:   UT_True, if successful, otherwise UT_False.

See also: GetUnlaceModeTypeName GetChannelType GetDrawModeType GetFillModeType GetChannelFormat

Top of page

GetUnlaceModeTypeName

  Name:           IP_GetUnlaceModeTypeName

  Usage:          Get the name of an unlace mode type.

  Synopsis:       const char *IP_GetUnlaceModeTypeName(
                              IP_UnlaceModeType unlaceModeType)

  Tcl usage:      poImageState GetUnlaceModeTypeName unlaceModeType unlaceModeTypeName:return

  Description:    Possible unlace mode type names:
                      "EXTRACT", "REPLICATE", "INTERPOLATE"
                      "UNKNOWN" for invalid unlace mode type.

  Return value:   A pointer to the name of the unlace mode type.

See also: GetUnlaceModeType GetChannelTypeName GetDrawModeTypeName GetFillModeTypeName GetChannelFormatName

Top of page

H

HasChannel

  Name:           IP_HasChannel

  Usage:          Check existence of a channel in an image.

  Synopsis:       UT_Bool IP_HasChannel(
                          IP_ImageId img,
                          FF_ImgChanType channel)

  Tcl usage:      $img HasChannel channel bool:return

  Description:    Check, if channel "channel" exists in image "img".

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if channel exists, else UT_False.

See also: AddChannel GetImageInfo GetImageFormat

Top of page

HasPhotoSupport

  Name:           HasPhotoSupport

  Usage:          Check Tk photo support.

  Tcl usage:      poImageState HasPhotoSupport bool:return

  Description:    Check, if poImg has been compiled to support
                  Tk photos. This is the default mode.

                  Support for Tk photos can be disabled at compile
                  time by setting configure flag:
                  --enable-tkphotos=off

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   If compiled with Tk photo support, return true.
                  Otherwise false.

See also: MemCheck HasThreadSupport

Top of page

HasThreadSupport

  Name:           HasThreadSupport

  Usage:          Check thread support.

  Tcl usage:      poImageState HasThreadSupport bool:return

  Description:    Check, if poImg has been compiled to support
                  threading. This is the default mode.

                  Support for threading can be disabled at compile
                  time by setting configure flag:
                  --enable-threads=off

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   If compiled with thread support, return true.
                  Otherwise false.

See also: MemCheck HasPhotoSupport

Top of page

I

Interlace

  Name:           IP_Interlace

  Usage:          Interlace two video fields into one frame.

  Synopsis:       UT_Bool IP_Interlace(
                          IP_ImageId fieldImg1,
                          IP_ImageId fieldImg2,
                          IP_ImageId frameImg,
                          UT_Bool skipLines)

  Tcl usage:      $frameImg Interlace fieldImg1 fieldImg2 ?skipLines=true?

  Description:    Images "fieldImg1" and "fieldImg2" are taken as the
                  first and second field of an interlaced video image.
                  The images are combined into a full video frame.
                  The result is stored in image "frameImg".

                  If the "skipLines" flag is UT_True, only every second
                  scan line of "fieldImg1" and "fieldImg2" is used to
                  construct the interlaced frame. The field images must
                  have the same size as the frame image.
                  If the "skipLines" flag is UT_False, all scan lines
                  from "fieldImg1" and "fieldImg2" are used. The field
                  images must have half the height of the frame image.

                  Note:
                  - For interlacing, "fieldImg1", "fieldImg2" and "frameImg"
                    are aligned at the upper left corner. The top scan line
                    in "frameImg" is always taken from image "fieldImg1".

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Unlace Flicker

Top of page

J

JuliaSet

  Name:           IP_JuliaSet

  Usage:          Generate an image of a Julia set.

  Synopsis:       UT_Bool IP_JuliaSet(
                          IP_ImageId img,
                          Float32 radd, Float32 iadd,
                          Float32 rcen, Float32 icen, Float32 rlen,
                          Int32 numIterations,
                          const UInt8 redColorList[256],
                          const UInt8 greenColorList[256],
                          const UInt8 blueColorList[256])

  Tcl usage:      $img JuliaSet radd iadd rcen icen rlen numIterations redColorList greenColorList blueColorList

  Description:    img:            Image with red, green and blue
                                  channels in FF_ImgFmtTypeUByte format.
                  radd, iadd:     Real and imaginary part of the additive
                                  constant.
                  rcen, icen:     Real and imaginary part of the center
                                  of the screen.
                  rlen:           Length of the displayed interval in
                                  real direction.
                  numIterations:  Number of iterations per pixel.
                  redColorList
                  greenColorList
                  blueColorList:  Array of 256 color values for the red,
                                  green and blue channels.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: RGB
                  Float format: No

  Return value:   UT_True if successful, else UT_False.

See also: Mandelbrot CreateChannelNoise

Top of page

M

Mandelbrot

  Name:           IP_Mandelbrot

  Usage:          Generate an image of a Mandelbrot set.

  Synopsis:       UT_Bool IP_Mandelbrot(
                          IP_ImageId img,
                          Float32 rcen, Float32 icen, Float32 rlen,
                          Int32 numIterations,
                          const UInt8 redColorList[256],
                          const UInt8 greenColorList[256],
                          const UInt8 blueColorList[256])

  Tcl usage:      $img Mandelbrot rcen icen rlen numIterations redColorList greenColorList blueColorList

  Description:    img:            Image with red, green and blue
                                  channels in FF_ImgFmtTypeUByte format.
                  rcen, icen:     Real and imaginary part of the center
                                  of the screen.
                  rlen:           Length of the displayed interval in
                                  real direction.
                  numIterations:  Number of iterations per pixel.
                  redColorList
                  greenColorList
                  blueColorList:  Array of 256 color values for the red,
                                  green and blue channels.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: RGB
                  Float format: No

  Return value:   UT_True if successful, else UT_False.

See also: JuliaSet CreateChannelNoise

Top of page

MarkNonZeroPixels

  Name:           IP_MarkNonZeroPixels

  Usage:          Mark all non-zero pixels of an image.

  Synopsis:       UT_Bool IP_MarkNonZeroPixels(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          Float32 threshold,
                          Int32 *numMarkedPixels)

  Tcl usage:      $srcImg  MarkNonZeroPixels threshold numMarkedPixels:out destImg:return
                  $destImg MarkNonZeroPixels threshold numMarkedPixels:out srcImg

  Description:    Each pixel of image "srcImg" is checked, if its
                  value is larger than "threshold". If true, this pixel
                  is set in image "destImg" to the current draw color.
                  Otherwise the pixel value of "srcImg" is copied to "destImg".
                  The number of pixels marked with the current draw color is
                  returned in "numMarkedPixels".

                  Use this function in combination with IP_DifferenceImage
                  to check, if two images are identical.

                  Tcl note: The function can be called in two ways.
                  1. The destination image is created by the Tcl wrapper
                     and returned by the function.
                  2. Direct mapping of the C function, where the destination
                     image has to be supplied by the caller. The caller is
                     responsible for correct image format and size.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: DifferenceImage

Top of page

Median

  Name:           IP_Median

  Usage:          Apply a median filter to an image.

  Synopsis:       UT_Bool IP_Median(IP_ImageId img)

  Tcl usage:      $img Median

  Description:    A three pixel wide median filter is applied to
                  image "img". First horizontally, then vertically.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: MedianSequence Blur

Top of page

MedianSequence

  Name:           IP_MedianSequence

  Usage:          Apply a median filter to an image sequence.

  Synopsis:       UT_Bool IP_MedianSequence(
                          IP_ImageId srcImg1,
                          IP_ImageId srcImg2,
                          IP_ImageId srcImg3,
                          IP_ImageId destImg)

  Tcl usage:      $destImg MedianSequence srcImg1 srcImg2 srcImg3

  Description:    A median filter is applied to image sequence
                  "srcImg1", "srcImg2", "srcImg3".
                  Corresponding pixel values in "srcImg1", "srcImg2" and
                  "srcImg3" are compared and the second-largest value is
                  stored in "destImg".

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Median

Top of page

MemCheck

  Name:           MemCheck

  Usage:          Check memory usage.

  Tcl usage:      poImageState MemCheck bool:return

  Description:    Check, if all memory allocated by the poImg library
                  has been freed.

                  More detailed information regarding allocated memory
                  blocks can enabled at compile time by setting configure flag:
                  --enable-memdebug=on
                  The information is printed onto stdout.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   If all memory has been freed, return true.
                  Otherwise false.

See also: HasPhotoSupport HasThreadSupport

Top of page

MergeBrush

  Name:           IP_MergeBrush

  Usage:          Make a brush stroke to merge two images.

  Synopsis:       UT_Bool IP_MergeBrush(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          IP_ImageId brushImg,
                          Int32 x, Int32 y,
                          Float32 intensity)

  Tcl usage:      $destImg MergeBrush srcImg brushImg x y ?intensity=1.0?

  Description:    Draw a brush stroke into image "destImg" at
                  pixel (x, y) based upon the color information
                  found in image "srcImg".
                  The brush is defined in image "brushImg".
                  The intensity (or pressure) of the stroke is
                  specified in "intensity". Valid intensity values
                  are in the range of [0.0, 1.0], where 1.0 means
                  full intensity.

                  See IP_DrawBrush for the requirements of a brush image.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: DrawBrush DrawBrushLine

Top of page

N

NewImage

  Name:           IP_NewImage

  Usage:          Create a new image.

  Synopsis:       IP_ImageId IP_NewImage(
                             Int32 width, Int32 height,
                             Float32 aspect,
                             const char *options)

  Tcl usage:      poImage NewImage width height ?aspect? poImg:return

  Description:    Memory for an image with "width" by "height" pixels,
                  and with an aspect ratio of "aspect" is allocated.
                  The current pixel data format defines the format
                  for the channels in the new image.
                  The values of the pixels in the image are undefined.

                  Tcl note:
                  If "aspect" is not specified, it is set to width / height.
                  The "options" parameter is not exposed at
                  the Tcl level, but used internally by the C interface.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   An identifier for the new image if successful,
                  else NULL.

NewImageFromFile NewImageFromPhoto

Top of page

NewImageFromFile

  Name:           IP_NewImageFromFile

  Usage:          Read an image from a file.

  Synopsis:       IP_ImageId IP_NewImageFromFile(
                             const char *fileName,
                             const char *options)

  Tcl usage:      poImage NewImageFromFile fileName ?options? poImg:return

  Description:    A new image with the same width, height, aspect
                  ratio and pixel data formats as the image stored in
                  file "fileName" is created.
                  The pixel data in the file is copied into the new
                  image without scaling and without gamma or color
                  correction.

                  The possible option values are format dependent and are
                  identical to the values offered by the Img extension.

                  The following read options are recognized by all formats:
                  -verbose   <bool>
                  -withalpha <bool>

                  The following read options are recognized by the RAW format:
                  -scanorder <TopDown|BottomUp>
                  -useheader <bool>
                  -skipbytes <bool>
                  -byteorder <Intel|Motorola>
                  -width     <integer>
                  -height    <integer>
                  -numchan   <integer>
                  -pixeltype <double|float|int|short|byte>

                  Note, that the mapping options of the Img extension
                  "-map", "-min", "-max", "-gamma", "-saturation", "-cutoff"
                  are not supported, as the poImg extension supports
                  floating point images.
                  To display floating point images using photo images,
                  see the IP_AsPhoto or poImgUtil::AsPhoto command.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   An identifier for the image read from the file
                  if successful, else NULL.

See also: NewImage NewImageFromPhoto ReadImage WriteImage AsPhoto poImgUtil::AsPhoto

Top of page

NewImageFromFile

   Name:           poImgUtil::NewImageFromFile

   Usage:          Read an image from a file.

   Tcl usage:      NewImageFromFile { fileName options }

                   fileName: string
                   options:  string, optional ("")

  Tcl usage:      poImage NewImageFromFile fileName ?options? poImg:return

   Description:    First try to read the image file using NewImageFromFile.
                   If this fails, try to read the image file using the Tk
                   "image create photo" command.
                   The option string "options" is transfered to the call
                   of NewImageFromFile.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The image if successful. Otherwise an error is thrown.

See also: NewImageFromFile NewImageFromPhoto

Top of page

NewImageFromPhoto

  Name:           IP_NewImageFromPhoto

  Usage:          Create an image from a Tk photo.

  Synopsis:       IP_ImageId IP_NewImageFromPhoto(
                             Tcl_Interp *interp,
                             const char *photoName)

  Tcl usage:      poImage NewImageFromPhoto photoName poImg:return

  Description:    The Tk photo "photoName" is copied into
                  a new image.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: RGB
                  Float format: No

  Return value:   An identifier for the new image if successful,
                  else NULL.

See also: AsPhoto

Top of page

P

PopState

  Name:           IP_PopState

  Usage:          Pop current state from stack.

  Synopsis:       Int32 IP_PopState (void)

  Tcl usage:      poImageState PopState stackIndex:return

  Description:    Pop current state from stack.
                  The state consists of the following members:
                      Pixel format.
                      Draw mask.
                      Draw color.
                      Draw mode.

  Return value:   The current stack index starting with zero.
                  If more IP_PopState functions have been called than
                  preceeding IP_PushState functions, -1 is returned.

See also: PushState SetFormat SetDrawMask SetDrawColor SetDrawMode

Top of page

PushState

  Name:           IP_PushState

  Usage:          Push current state onto stack.

  Synopsis:       Int32 IP_PushState (void)

  Tcl usage:      poImageState PushState stackIndex:return

  Description:    Push current state onto stack.
                  The state consists of the following members:
                      Pixel format.
                      Draw mask.
                      Draw color.
                      Draw mode.

  Return value:   The current stack index starting with zero.
                  If the maximum stack depth is exceed, -1 is returned.
                  The maximum stack depth is 10.

See also: PopState GetFormat GetDrawMask GetDrawColor GetDrawMode

Top of page

R

ReadImage

  Name:           IP_ReadImage

  Usage:          Read an image from a file.

  Synopsis:       UT_Bool IP_ReadImage
                          (IP_ImageId img,
                           const char *fileName,
                           const char *options)

  Tcl usage:      $img ReadImage fileName ?options?

  Description:    The pixel data stored in image file "fileName" is
                  read into image "img" using options "options".

                  If option "-scale" is true, the pixels in the file are
                  scaled, so that the width and height of the image in
                  the file becomes equal to width and height of "img".

                  If "-scale" is false, the image in the file is copied
                  into "img". If "img" is larger than the image in the
                  file, the regions not covered by the image in the
                  file are filled with zeros.

                  Default value of option "-scale" is false.

                  Note that the image scaling algorithm has been
                  designed to transform the pixel data quickly on the
                  fly, while the data is read from the image file.
                  The quality of the scaled picture is not optimal:
                  Aliasing may occur at high-contrast edges, especially
                  when the image is shrunk or blown up by some large
                  amount.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: NewImageFromFile NewImageFromPhoto WriteImage

Top of page

RemapChannelValues

  Name:           IP_RemapChannelValues

  Usage:          Change one channel of an image by remapping the
                  pixel data with a lookup table.

  Synopsis:       UT_Bool IP_RemapChannelValues(
                          IP_ImageId img,
                          FF_ImgChanType channel,
                          Int32 lutSize, const Float32 lutList[])

  Tcl usage:      $img RemapChannelValues channel lutList

  Description:    The original value "v" of channel "channel" of every
                  pixel in image "img" is mapped into a new value which
                  replaces the original pixel data:

                          v = f (v * (lutSize - 1))

                  "f" is a continuous and piecewise linear function so
                  that for all x in the range from 0 to (lutSize - 1)

                          f (floor(x)) == lutList[floor(x)].

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: ChangeChannelGamma ComputeChannelDerivates

Top of page

ReplaceTransparency

   Name:           poImgUtil::ReplaceTransparency

   Usage:          Replace transparency with color.

   Tcl usage:      ReplaceTransparency { img red green blue }

                   img:       image
                   red:       float
                   green:     float
                   blue:      float

   Description:    Replace all transparent pixels of image "img"
                   with color value ("red", "green", "blue").
                   The color values must be in the range [0.0, 1.0].

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: RGBA
                   Float format: RGBA

   Return Value:   RGB image with replaced transparency.

See also: poImgUtil::SetTransparentColor CompositeMatte

Top of page

Rotate

   Name:           poImgUtil::Rotate

   Usage:          Rotate an image by an arbitray angle.

   Tcl usage:      Rotate { srcImg destImg angle xcen ycen fillMode }

                   srcImg:     image
                   destImg:    image
                   angle:      float
                   xcen, ycen: float, optional (0.5, 0.5)
                   fillMode:   string, optional (FILL)

   Description:    Image "srcImg" is rotated counterclockwise by
                   "angle" around position (xcen, ycen).  The result
                   is stored in image "destImg".

                   "fillMode" determines how pixels in "destImg",
                   which are not covered by the rotated version of
                   "srcImg" are treated.
                   Acceptable values for "fillMode" are FILL, CLIP, WRAP.
                   See the description of "WarpFunct" for details.

                   The x and y coordinates in "srcImg" and "destImg"
                   increase from left to right and from bottom to top.
                   The lower left  corners are at (0.0, 0.0).
                   The upper right corners are at (1.0, 1.0).

                   "angle" is measured in radians.
                   Use procedure "poVecUtil::DegToRad" to convert an angle
                   given in degrees into radians.

  States:          State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    Yes
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: poImgUtil::Transform WarpFunct SetNumThreads

Top of page

Rotate90

  Name:           IP_Rotate90

  Usage:          Rotate an image by -90, 90, 180 or 270 degrees.

  Synopsis:       void IP_Rotate90(
                       IP_ImageId srcImg,
                       IP_ImageId destImg,
                       Int32 angle)

  Tcl usage:      $srcImg Rotate90 angle destImg:return

  Description:    Rotate image "srcImg" by -90, 90, 180 or 270 degrees
                  and return the rotated image in "destImg".

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True, if a valid angle was specified.
                  Otherwise UT_False.

See also: FlipHorizontal FlipVertical FlipDiagonal

Top of page

S

ScaleHistogram

   Name:           poImgUtil::ScaleHistogram

   Usage:          Get scaled image histogram.

   Tcl usage:      ScaleHistogram { histoDict height histoType }

                   histoDict: Histogram dictionary
                   height:    integer
                   histoType: string, optional ("log")

   Description:    Return a scaled histogram dictionary based on
                   histogram dictionary "histoDict" as obtained by
                   poImgUtil::GetHistogram.
                   The values of histogram "histoDict" are scaled
                   either logarithmically or linearly, depending
                   on the value of "histoType".
                   Possible "histoType" values are: "log" or "lin".
                   The returned dictionary has 3 keys "RED", "GREEN" and "BLUE",
                   each containing a list of 256 values, so that the maximum value
                   is equal to "height".

                   Use this procedure to scale histogram values to fit into an
                   image or canvas of size "256 x height".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: RGB
                   Float format: RGB

   Return Value:   Scaled image histogram as dictionary.

See also: poImgUtil::GetHistogram GetChannelHistogram

Top of page

ScaleImage

   Name:           poImgUtil::ScaleImage

   Usage:          Scale an image.

   Tcl usage:      ScaleImage { img newWidth newHeight }

                   img:       image
                   newWidth:  integer
                   newHeight: integer

   Description:    Scale the image "img" to new size
                   "newWidth" by "newHeight" and return
                   the scaled image.

   States:         State settings influencing functionality:
                   Draw mask:    Yes
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The scaled image if successful. Otherwise an error is thrown.

See also: ScaleRect

Top of page

ScalePhoto

   Name:           poImgUtil::ScalePhoto

   Usage:          Scale a Tk photo image.

   Tcl usage:      ScalePhoto { photo newWidth newHeight }

                   photo:     Tk photo
                   newWidth:  integer
                   newHeight: integer

   Description:    Scale the Tk photo "photo" to new size
                   "newWidth" by "newHeight" and return
                   the scaled Tk photo.

   States:         State settings influencing functionality:
                   Draw mask:    Yes
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   The scaled image if successful. Otherwise an error is thrown.

See also: ScaleRect NewImageFromPhoto

Top of page

ScaleRect

  Name:           IP_ScaleRect

  Usage:          Copy the pixels inside a rectangular source region in
                  an image, to a destination region of possibly different
                  size in another image.

  Synopsis:       UT_Bool IP_ScaleRect(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          Int32 xs1, Int32 ys1,
                          Int32 xs2, Int32 ys2,
                          Int32 xd1, Int32 yd1,
                          Int32 xd2, Int32 yd2,
                          UT_Bool usePyramidFilter,
                          UT_Bool gammaCorrect)

  Tcl usage:      $destImg ScaleRect srcImg xs1 ys1 xs2 ys2 xd1 yd1 xd2 yd2 ?usePyramidFilter=false? ?gammaCorrect=false?

  Description:    One corner of the source region is at position
                  (xs1, ys1) in image "srcImg". The diagonally
                  opposite corner of the source region is at
                  position (xs2, ys2).
                  The corner of the destination region, which
                  corresponds to (xs1, ys1) in the source region,
                  is at position (xd1, yd1) in image "destImg".
                  The diagonally opposite corner of the destination
                  region is at position (xd2, yd2).

                  The "usePyramidFilter" flag selects the shape of the
                  filter mask applied to the scaled pixel data.
                  "UT_True" selects a pyramid-shaped mask.
                  "UT_False" selects a box-shaped mask.

                  If the "gammaCorrect" flag is set to "UT_True",
                  the scaled pixel data are gamma corrected according
                  to the source and destination images' gamma factors.

                  Note: The source and destination regions should not
                  be overlapping regions in the same image.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, otherwise UT_False.

See also: BlankRect CopyRect

Top of page

SetColorCorrect

  Name:           IP_SetColorCorrect

  Usage:          Set the current color correction parameters.

  Synopsis:       UT_Bool IP_SetColorCorrect(
                          Float32 gamma,
                          const CIE_hue *red,
                          const CIE_hue *green,
                          const CIE_hue *blue,
                          const CIE_hue *white)

  Tcl usage:      poImageState SetColorCorrect ?gamma? ?rx? ?ry? ?gx? ?gy? ?bx? ?by? ?wx? ?wy?

  Description:    Define the current gamma and color correction
                  parameters, i.e. parameters written into
                  the header of any newly created images.

                  The parameters and their default values are:

                  gamma   1.0             Gamma factor of the frame
                                          buffer / monitor combination
                                          which will be used to display
                                          images

                  red     (0.670, 0.330)  The location of the monitor's
                                          pure red in the CIE x-y color
                                          diagram; default is NTSC
                                          standard primary red.

                  green   (0.210, 0.710)  The location of the monitor's
                                          pure green; default is NTSC
                                          standard primary green.

                  blue    (0.140, 0.080)  The location of the monitor's
                                          pure blue; default is NTSC
                                          standard primary blue.

                  white   (0.313, 0.329)  The location of the monitor's
                                          white point; default is CIE
                                          illuminant D6500, i.e. the
                                          color of a black body at a
                                          temperature of 6500 Kelvin.

                  Tcl note: If no parameter is specified, the current
                  color correction values are reset to the default values.

  Return value:   UT_True if successful, else UT_False.

See also: GetColorCorrect SetDrawMask SetDrawMode SetDrawColor SetFormat PushState PopState

Top of page

SetDrawColor

  Name:           IP_SetDrawColor

  Usage:          Set the current draw color.

  Synopsis:       UT_Bool IP_SetDrawColor(
                          const Float32 drawColorList[FF_NumImgChanTypes])

  Tcl usage:      poImageState SetDrawColor ?drawColorList?

  Description:    Define the current draw color for all channels,
                  i.e. the color used when drawing into an image
                  takes place: The current draw color for
                  channel number "i" is set to "drawColorList[i]".

                  Drawing colors should be in the range from 0.0 to 1.0
                  for all channels except FF_ImgChanTypeHoriSnr,
                  FF_ImgChanTypeVertSnr, FF_ImgChanTypeDepth,
                  FF_ImgChanTypeTemperature and FF_ImgChanTypeRadiance.
                  For FF_ImgChanTypeHoriSnr and FF_ImgChanTypeVertSnr,
                  draw colors must be in the range from -1.0 to +1.0.
                  For FF_ImgChanTypeDepth, draw colors must be
                  greater than 0.0, as depth information is stored as the
                  reciprocal value.

                  By default, the current draw color is 0.0 for all
                  channels.

                  Tcl note: If "drawColorList" is not specified, the
                  current draw color is reset to the default values.
                  If "drawColorList" has less elements than NUMCHAN
                  (FF_NumImgChanTypes), the missing elements are filled
                  with zeros.

  Return value:   UT_True if successful, else UT_False.

See also: GetDrawColor SetDrawMask SetDrawMode SetColorCorrect SetFormat PushState PopState

Top of page

SetDrawColorAll

   Name:           poImgUtil::SetDrawColorAll

   Usage:          Set current draw color.

   Tcl usage:      SetDrawColorAll { value }

                   value: float

   Description:    Set the current draw color of all channels
                   to "value".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawColor poImgUtil::SetDrawColorChan poImgUtil::SetDrawColorRGB poImgUtil::SetDrawColorRGBA

Top of page

SetDrawColorChan

   Name:           poImgUtil::SetDrawColorChan

   Usage:          Set current draw color.

   Tcl usage:      SetDrawColorChan { channel value reset }

                   channel: Channel type number or name
                   value:   float
                   reset:   bool, optional (false)

   Description:    Set the current draw color of channel
                   "channel" to "value".
                   If "reset" is false, only the draw color of
                   the specified channel is changed. Otherwise
                   the draw color of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawColor poImgUtil::SetDrawColorAll poImgUtil::SetDrawColorRGB poImgUtil::SetDrawColorRGBA poImgUtil::GetChannelTypeNames

Top of page

SetDrawColorRGB

   Name:           poImgUtil::SetDrawColorRGB

   Usage:          Set current draw color.

   Tcl usage:      SetDrawColorRGB { r g b reset }

                   r, g, b: float
                   reset:   bool, optional (false)

   Description:    Set the current draw color of the RGB
                   channels to "r", "g" and "b".
                   If "reset" is false, only the draw color of
                   the RGB channels is changed. Otherwise
                   the draw color of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawColor poImgUtil::SetDrawColorAll poImgUtil::SetDrawColorChan poImgUtil::SetDrawColorRGBA poImgUtil::GetChannelTypeNames

Top of page

SetDrawColorRGBA

   Name:           poImgUtil::SetDrawColorRGBA

   Usage:          Set current draw color.

   Tcl usage:      SetDrawColorRGBA { r g b a reset }

                   r, g, b, a: float
                   reset:      bool, optional (false)

   Description:    Set the current draw color of the RGBA
                   channels to "r", "g", "b" and "a".
                   If "reset" is false, only the draw color of
                   the RGBA channels is changed. Otherwise
                   the draw color of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawColor poImgUtil::SetDrawColorAll poImgUtil::SetDrawColorChan poImgUtil::SetDrawColorRGB poImgUtil::GetChannelTypeNames

Top of page

SetDrawMask

  Name:           IP_SetDrawMask

  Usage:          Set the current draw mask.

  Synopsis:       UT_Bool IP_SetDrawMask(
                          const UT_Bool drawMaskList[FF_NumImgChanTypes])

  Tcl usage:      poImageState SetDrawMask ?drawMaskList?

  Description:    Define the current draw mask, i.e. the mask selecting
                  which channels will be affected by functions drawing
                  into an image:
                  Drawing into channel number "i" is allowed only if
                  drawMaskList[i] is UT_True.

                  By default, the current draw mask is UT_True for
                  all channels.

                  Tcl note: If "drawMaskList" is not specified, the
                  current draw mask is reset to the default values.
                  If "drawMaskList" has less elements than NUMCHAN
                  (FF_NumImgChanTypes), the missing elements are filled
                  with zeros.

  Return value:   UT_True if successful, else UT_False.

See also: GetDrawMask SetDrawColor SetDrawMode SetColorCorrect SetFormat PushState PopState

Top of page

SetDrawMaskAll

   Name:           poImgUtil::SetDrawMaskAll

   Usage:          Set current draw mask.

   Tcl usage:      SetDrawMaskAll { value }

                   value: bool

   Description:    Set the current draw mask of all channels
                   to "value".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMask poImgUtil::SetDrawMaskChan poImgUtil::SetDrawMaskRGB poImgUtil::SetDrawMaskRGBA

Top of page

SetDrawMaskChan

   Name:           poImgUtil::SetDrawMaskChan

   Usage:          Set current draw mask.

   Tcl usage:      SetDrawMaskChan { channel value reset }

                   channel: Channel type number or name
                   value:   bool
                   reset:   bool, optional (false)

   Description:    Set the current draw mask of channel
                   "channel" to "value".
                   If "reset" is false, only the draw mask of
                   the specified channel is changed. Otherwise
                   the draw mask of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMask poImgUtil::SetDrawMaskAll poImgUtil::SetDrawMaskRGB poImgUtil::SetDrawMaskRGBA poImgUtil::GetChannelTypeNames

Top of page

SetDrawMaskRGB

   Name:           poImgUtil::SetDrawMaskRGB

   Usage:          Set current draw mask.

   Tcl usage:      SetDrawMaskRGB { r g b reset }

                   r, g, b: bool
                   reset:   bool, optional (false)

   Description:    Set the current draw mask of the RGB
                   channels to "r", "g" and "b".
                   If "reset" is false, only the draw mask of
                   the RGB channels is changed. Otherwise
                   the draw mask of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMask poImgUtil::SetDrawMaskAll poImgUtil::SetDrawMaskChan poImgUtil::SetDrawMaskRGBA poImgUtil::GetChannelTypeNames

Top of page

SetDrawMaskRGBA

   Name:           poImgUtil::SetDrawMaskRGBA

   Usage:          Set current draw mask.

   Tcl usage:      SetDrawMaskRGBA { r g b a reset }

                   r, g, b, a: bool
                   reset:      bool, optional (false)

   Description:    Set the current draw mask of the RGBA
                   channels to "r", "g", "b" and "a".
                   If "reset" is false, only the draw mask of
                   the RGBA channels is changed. Otherwise
                   the draw mask of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMask poImgUtil::SetDrawMaskAll poImgUtil::SetDrawMaskChan poImgUtil::SetDrawMaskRGB poImgUtil::GetChannelTypeNames

Top of page

SetDrawMode

  Name:           IP_SetDrawMode

  Usage:          Set the current draw mode.

  Synopsis:       UT_Bool IP_SetDrawMode(
                          const IP_DrawModeType drawModeList[FF_NumImgChanTypes])

  Tcl usage:      poImageState SetDrawMode ?drawModeList?

  Description:    Define the current draw mode for all channels,
                  i.e. how the current draw color is combined with
                  the orignal color of pixels when drawing into an
                  image takes place: "drawModeList[i]" is the
                  current draw mode for channel number "i".

                  Enumeration IP_DrawModeType has the following members:
                  IP_DrawModeReplace: 0  Replace old color with current color
                  IP_DrawModeAdd    : 1  Add old color and current color
                  IP_DrawModeSub    : 2  Subtract old color from current color
                  IP_DrawModeXor    : 3  Exclusive-or old color and current color

                  By default, the current draw mode is
                  IP_DrawModeReplace for all channels.

                  Tcl note: If "drawModeList" is not specified, the
                  current draw mode is reset to the default values.
                  If "drawModeList" has less elements than NUMCHAN
                  (FF_NumImgChanTypes), the missing elements are filled
                  with zeros.
                  The draw mode enumeration values can be accessed in
                  Tcl using the following global variables:
                  REPLACE ADD SUB XOR

  Return value:   UT_True if successful, else UT_False.

See also: GetDrawMode SetDrawMask SetDrawColor SetColorCorrect SetFormat PushState PopState

Top of page

SetDrawModeAll

   Name:           poImgUtil::SetDrawModeAll

   Usage:          Set current draw mode.

   Tcl usage:      SetDrawModeAll { value }

                   value: Draw mode number or name

   Description:    Set the current draw mode of all channels
                   to "value".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMode poImgUtil::SetDrawModeChan poImgUtil::SetDrawModeRGB poImgUtil::SetDrawModeRGBA

Top of page

SetDrawModeChan

   Name:           poImgUtil::SetDrawModeChan

   Usage:          Set current draw mode.

   Tcl usage:      SetDrawModeChan { channel value reset }

                   channel: Channel type number or name
                   value:   Draw mode number or name
                   reset:   bool, optional (false)

   Description:    Set the current draw mode of channel
                   "channel" to "value".
                   If "reset" is false, only the draw mode of
                   the specified channel is changed. Otherwise
                   the draw mode of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMode poImgUtil::SetDrawModeAll poImgUtil::SetDrawModeRGB poImgUtil::SetDrawModeRGBA poImgUtil::GetChannelTypeNames

Top of page

SetDrawModeRGB

   Name:           poImgUtil::SetDrawModeRGB

   Usage:          Set current draw mode.

   Tcl usage:      SetDrawModeRGB { r g b reset }

                   r, g, b: Draw mode number or name
                   reset:   bool, optional (false)

   Description:    Set the current draw mode of the RGB
                   channels to "r", "g" and "b".
                   If "reset" is false, only the draw mode of
                   the RGB channels is changed. Otherwise
                   the draw mode of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMode poImgUtil::SetDrawModeAll poImgUtil::SetDrawModeChan poImgUtil::SetDrawModeRGBA poImgUtil::GetChannelTypeNames

Top of page

SetDrawModeRGBA

   Name:           poImgUtil::SetDrawModeRGBA

   Usage:          Set current draw mode.

   Tcl usage:      SetDrawModeRGBA { r g b a reset }

                   r, g, b, a: Draw mode number or name
                   reset:      bool, optional (false)

   Description:    Set the current draw mode of the RGBA
                   channels to "r", "g", "b" and "a".
                   If "reset" is false, only the draw mode of
                   the RGBA channels is changed. Otherwise
                   the draw mode of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetDrawMode poImgUtil::SetDrawModeAll poImgUtil::SetDrawModeChan poImgUtil::SetDrawModeRGB poImgUtil::GetChannelTypeNames

Top of page

SetFormat

  Name:           IP_SetFormat

  Usage:          Set the current pixel data format.

  Synopsis:       UT_Bool IP_SetFormat(
                          const FF_ImgFmtType formatList[FF_NumImgChanTypes])

  Tcl usage:      poImageState SetFormat ?formatList?

  Description:    Define the current pixel data format for all channels,
                  i.e. the format to be used for the different channels
                  when a new image is created.
                  When memory is allocated for channel number "i" of an
                  image, pixel data format formatList[i] is used.

                  Enumeration FF_ImgFmtType has the following members:
                  FF_ImgFmtTypeNone : 0  None. channel does not exist
                  FF_ImgFmtTypeUByte: 1  Unsigned 8-bit integers
                  FF_ImgFmtTypeFloat: 2  32-bit floating point numbers

                  By default, the current pixel data format is
                  FF_ImgFmtTypeNone for all channels except for
                  FF_ImgChanTypeRed, FF_ImgChanTypeGreen and
                  FF_ImgChanTypeBlue, for which
                  the default is FF_ImgFmtTypeUByte.

                  Tcl note: If "formatList" is not specified, the
                  current pixel data format is reset to the default values.
                  If "formatList" has less elements than NUMCHAN
                  (FF_NumImgChanTypes), the missing elements are filled
                  with zeros.
                  The format enumeration values can be accessed in
                  Tcl using the following global variables:
                  NONE UBYTE FLOAT

  Return value:   UT_True if successful, else UT_False.

See also: GetFormat SetDrawMask SetDrawColor SetDrawMode SetColorCorrect PushState PopState

Top of page

SetFormatAll

   Name:           poImgUtil::SetFormatAll

   Usage:          Set current pixel data format.

   Tcl usage:      SetFormatAll { value }

                   value: Pixel format number or name

   Description:    Set the current pixel data format of
                   all channels to "value".

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetFormat poImgUtil::SetFormatChan poImgUtil::SetFormatRGB poImgUtil::SetFormatRGBA

Top of page

SetFormatChan

   Name:           poImgUtil::SetFormatChan

   Usage:          Set current pixel data format.

   Tcl usage:      SetFormatChan { channel value reset }

                   channel: Channel type number or name
                   value:   Pixel format number or name
                   reset:   bool, optional (false)

   Description:    Set the current pixel data format mode of
                   channel "channel" to "value".
                   If "reset" is false, only the format of
                   the specified channel is changed. Otherwise
                   the format of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetFormat poImgUtil::SetFormatAll poImgUtil::SetFormatRGB poImgUtil::SetFormatRGBA poImgUtil::GetChannelTypeNames

Top of page

SetFormatRGB

   Name:           poImgUtil::SetFormatRGB

   Usage:          Set current pixel data format.

   Tcl usage:      SetFormatRGB { r g b reset }

                   r, g, b: Pixel format number or name
                   reset:   bool, optional (false)

   Description:    Set the current pixel format mode of the
                   RGB channels to "r", "g" and "b".
                   If "reset" is false, only the format of
                   the RGB channels is changed. Otherwise
                   the format of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetFormat poImgUtil::SetFormatAll poImgUtil::SetFormatChan poImgUtil::SetFormatRGBA poImgUtil::GetChannelTypeNames

Top of page

SetFormatRGBA

   Name:           poImgUtil::SetFormatRGBA

   Usage:          Set current pixel data format.

   Tcl usage:      SetFormatRGBA { r g b a reset }

                   r, g, b, a: Pixel format number or name
                   reset:      bool, optional (false)

   Description:    Set the current pixel format mode of the
                   RGBA channels to "r", "g", "b" and "a".
                   If "reset" is false, only the format of
                   the RGBA channels is changed. Otherwise
                   the format of all other channels are
                   reset to the default values.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: SetFormat poImgUtil::SetFormatAll poImgUtil::SetFormatChan poImgUtil::SetFormatRGB poImgUtil::GetChannelTypeNames

Top of page

SetNumThreads

  Name:           IP_SetNumThreads

  Usage:          Set the number of threads used for parallel processing.

  Synopsis:       UT_Bool IP_SetNumThreads (Int32 numThreads)

  Tcl usage:      poImageState SetNumThreads numThreads

  Description:    Attempt to allocate "numThreads" threads for parallel
                  operations on images.
                  If "numThreads" is set to zero (which is the default),
                  serial processing is used.

                  Some operating systems do not support the thread
                  concurrency mechanism on which the parallel image
                  operations are based. On these systems, all image
                  processing is done serially, regardless of the
                  number of threads specified with IP_SetNumThreads.
                  The same is true, if the library was compiled without
                  thread support.

  Return value:   UT_True if successful, else UT_False.

See also: GetNumThreads HasThreadSupport

Top of page

SetTextScale

  Name:           IP_SetTextScale

  Usage:          Set the text scaling factor.

  Synopsis:       UT_Bool IP_SetTextScale(Int32 scale)

  Tcl usage:      poImageState SetTextScale scale

  Description:    Set the text scaling factor.
                  The text scaling factor must be an integer
                  greater than 0.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: N/A
                  Float format: N/A

  Return value:   UT_True if successful, else UT_False.

See also: GetTextSize GetTextScale DrawText DrawAAText

Top of page

SetTransparentColor

   Name:           poImgUtil::SetTransparentColor

   Usage:          Set transparency according to color.

   Tcl usage:      SetTransparentColor { img red green blue threshold }

                   img:       image
                   red:       float
                   green:     float
                   blue:      float
                   threshold: integer, optional (0)

   Description:    Set the transparency of all pixels of image "img"
                   having color value ("red", "green", "blue") to
                   fully transparent.
                   The color values must be in the range [0.0, 1.0].
                   "threshold" defines, how exact the color values have
                   to match. If "threshold" is zero, the color values
                   must match exactly.

   States:         State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    No
                   UByte format: RGBA
                   Float format: RGBA

   Return Value:   None.

See also: poImgUtil::ReplaceTransparency DifferenceImage

Top of page

ShearHorizontal

  Name:           IP_ShearHorizontal

  Usage:          Shear an image horizontally.

  Synopsis:       UT_Bool IP_ShearHorizontal(
                          IP_ImageId img,
                          Float32 m,
                          Float32 t)

  Tcl usage:      $img ShearHorizontal m t

  Description:    See IP_ShearVertical for a detailed description.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: ShearVertical

Top of page

ShearVertical

  Name:           IP_ShearVertical

  Usage:          Shear an image vertically.

  Synopsis:       UT_Bool IP_ShearVertical(
                          IP_ImageId img,
                          Float32 m,
                          Float32 t)

  Tcl usage:      $img ShearVertical m t

  Description:    IP_ShearVertical shears image "img" by displacing
                  the pixels in "img" vertically:
                  Pixel (x, y) is moved to position (x, y + x*m + t).

                  IP_ShearHorizontal shears image "img" by displacing
                  the pixels horizontally:
                  Pixel (x, y) is moved to position (x + y*m + t, y).

                  Both, IP_ShearVertical and IP_ShearHorizontal, fill
                  regions in "img", which are not covered by the sheared
                  image, with the current draw color.

                  Notes:

                  - "m" must be in the range from -1.0 to 1.0; "t" must
                    be in the range from (-2.0 * s) to (2.0 * s), where
                    "s" is the sum of the width and height of the image,
                    in pixels.

                  - Images can be shifted with sub-pixel precision using
                    IP_ShearVertical and IP_ShearHorizontal.

                  - IP_ShearVertical and IP_ShearHorizontal can
                    be employed to rotate images by small angles.
                    Rotations by larger angles result in undesirable
                    scaling of the image.  If an image with square
                    pixels is rotated by angle "phi", using shearing
                    operations, the image is scaled larger by a factor
                    "f", where

                        f = sqrt (1.0 + square (tan (phi))).

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: ShearHorizontal

Top of page

Stamp

  Name:           IP_Stamp

  Usage:          Stamp an image on top of another image.

  Synopsis:       UT_Bool IP_Stamp(
                          IP_ImageId img, IP_ImageId stampImg,
                          Int32 x, Int32 y,
                          Float32 sr, Float32 sg, Float32 sb)

  Tcl usage:      $img Stamp stampImg x y ?sr=1.0? ?sg=1.0? ?sb=1.0?

  Description:    Image "stampImg" is copied onto image "img"
                  considering the matte channel of "stampImg".
                  If "stampImg" does not have a matte channel,
                  "stampImg" completely replaces the content of "img".
                  The lower left corner of "stampImg" is placed at
                  pixel position (x, y) in image "img". The red,
                  green and blue channels of image "stampImg" are
                  scaled according to the values specified in
                  "sr", "sg" and "sb". The scale values must be in
                  the range [0.0, 1.0].

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: RGB(A)
                  Float format: RGB(A)

  Return value:   UT_True if successful, else UT_False.

See also: CompositeMatte ChangeChannelGamma SetNumThreads

Top of page

T

Threshold

  Name:           IP_Threshold

  Usage:          Apply a threshold filter to an image.

  Synopsis:       UT_Bool IP_Threshold
                          (IP_ImageId srcImg, IP_ImageId destImg,
                           Float32 threshold, UT_Bool overwrite)

  Tcl usage:      $destImg Threshold srcImg threshold ?overwrite=false?

  Description:    Each pixel of image "srcImg" greater than "threshold" is
                  set to white (255) in image "destImg".
                  All other pixels in "destImg" are left unmodified,
                  if "overwrite" is "UT_False".
                  If "overwrite" is "UT_True", these pixels are set to black (0).

                  The "threshold" value must be in the range 0.0 .. 1.0.

                  Note:
                  - Only RGB channels in UByte format are supported.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: RGB
                  Float format: No

  Return value:   UT_True if successful, else UT_False.

See also: CutOff

Top of page

Transform

   Name:           poImgUtil::Transform

   Usage:          Apply a transformation matrix to an image.

   Tcl usage:      Transform { srcImg destImg tfm fillMode }

                   srcImg:   image
                   destImg:  image
                   tfm:      Tfm2D (2-dim. transformation matrix)
                   fillMode: string, optional (FILL)

   Description:    Image "srcImg" is transformed geometrically according
                   to transformation matrix "tfm".
                   The result is stored in image "destImg":
                   Each pixel in destImg at position "d", is filled with
                   the color at position "s" in "srcImg", where

                       s = d * tfm.

                   If "s" is not within the boundaries of the source
                   image, "fillMode" determines what color is assigned
                   to the pixel at position "d".
                   Acceptable values for "fillMode" are FILL, CLIP, WRAP.
                   See the description of "WarpFunct" for details.

                   The x and y coordinates in "srcImg" and "destImg"
                   increase from left to right and from bottom to top.
                   The lower left  corners are at (0.0, 0.0).
                   The upper right corners are at (1.0, 1.0).

  States:          State settings influencing functionality:
                   Draw mask:    No
                   Draw mode:    No
                   Draw color:   No
                   Threading:    Yes
                   UByte format: All
                   Float format: All

   Return Value:   None.

See also: poImgUtil::Rotate WarpFunct SetNumThreads

Top of page

U

Unlace

  Name:           IP_Unlace

  Usage:          Extract one video field from an interlaced frame.

  Synopsis:       UT_Bool IP_Unlace(
                          IP_ImageId frameImg,
                          IP_ImageId fieldImg,
                          UT_Bool useOddRows,
                          IP_UnlaceModeType unlaceMode)

  Tcl usage:      $fieldImg Unlace frameImg ?useOddRows=true? ?unlaceMode=EXTRACT?

  Description:    Every second scan line from image "frameImg" is copied into
                  image "fieldImg". Depending on whether the "useOddRows" flag
                  is set to "UT_True" or "UT_False", the odd-numbered or the
                  even-numbered scan lines are copied.

                  "unlaceMode" specifies the field interpolation mode.
                  It can have the following values:
                      IP_UnlaceModeExtract:
                          The scan lines of the selected field are extracted
                          without any modification. Image "fieldImg" should
                          have half the height of image "frameImg".
                      IP_UnlaceModeReplicate:
                          Each scan line of the selected field is copied
                          twice. Image "fieldImg" should have the same height
                          as image "frameImg".
                      IP_UnlaceModeInterpolate:
                          Each scanline of the selected field is copied
                          into "fieldImg", which should have the same height
                          as image "frameImg". The scanlines of the other
                          field are computed by interpolating between
                          the upper and lower scanlines of the selected
                          field.

                  Note:
                  - For field extraction, "fieldImg" and "frameImg" are aligned
                    at the upper left corner. The top scan line in "frameImg"
                    is always considered even-numbered.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: Interlace Flicker

Top of page

W

WarpFunct

  Name:           IP_WarpFunct

  Usage:          Perform free-form deformations on an image.

  Synopsis:       UT_Bool IP_WarpFunct(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          UT_Bool (* d1Funct)
                                  (Float32, Float32, Float32 *, Float32 *),
                          UT_Bool (* d1Deriv)
                                  (Float32, Float32,
                                   Float32 *, Float32 *, Float32 *, Float32 *),
                          Int32 interpStep,
                          IP_FillModeType fillMode)

  Tcl usage:      $destImg WarpFunct srcImg d1Funct d1Deriv interpStep ?fillMode=FILL?

  Description:    Image "srcImg" is deformed. The result is stored
                  in image "destImg". The deformation is defined by
                  an application-supplied displacement function,
                  "d1Funct", and its derivatives, "d1Deriv", which
                  should be defined as follows:

                    UT_Bool d1Funct
                          (Float32 x, Float32 y,
                           Float32 *u,  Float32 *v)

                    UT_Bool d1Deriv
                          (Float32 x, Float32 y,
                           Float32 *ux, Float32 *uy,
                           Float32 *vx, Float32 *vy)

                  Given a position (x, y) in the destination image,
                  "d1Funct" computes the corresonding position (u, v)
                  in the source image.
                  "d1Deriv" computes the four partial derivatives of
                  "d1Funct"; given a position (x, y), "d1Deriv" returns

                      ux = du (x, y) / dx,
                      uy = du (x, y) / dy,
                      vx = dv (x, y) / dx,
                      vy = dv (x, y) / dy.

                  Evaluating "d1Funct" and "d1Deriv" for every pixel can
                  be quite time-consuming.  In order to save some time,
                  "d1Funct" and "d1Deriv" are sampled only every "interpStep"
                  pixels; in-between values are interpolated linearly.

                  "fillMode" selects how colors are assigned to output image
                  pixels which are not covered by pixels in the input
                  image. The following values for "fillMode" are accepted:

                      IP_FillModeFill     Pixels not covered by the input
                                          image are filled with the
                                          current drawing color.

                      IP_FillModeWrap     The input image is repeated in
                                          horizontal and vertical
                                          direction so that the output
                                          image is tiled with copies of
                                          the input image.

                      IP_FillModeClip     Input pixel coordinates are
                                          clipped so that regions outside
                                          the input image are filled with
                                          the color of the nearest input
                                          image pixel.

                  Notes:

                  - Right-handed coordinate systems are used for
                    positions in the source and destination images.
                    The lower left corner of "srcImg" and "destImg"
                    is at (0, 0); the upper right corner is at (1, 1).

                  - The return value of "d1Funct" and "d1Deriv" should
                    normally be UT_True. Image warping is aborted if
                    either "d1Funct" or "d1Deriv" returns UT_False.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: BlendFunct WarpKeypoint BlendKeypoint SetNumThreads

Top of page

WarpKeypoint

  Name:           IP_WarpKeypoint

  Usage:          Perform free-form deformations on an image.

  Synopsis:       UT_Bool IP_WarpKeypoint(
                          IP_ImageId srcImg,
                          IP_ImageId destImg,
                          Int32 numKeys,
                          const Float32 xsrcList[],
                          const Float32 ysrcList[],
                          const Float32 xdestList[],
                          const Float32 ydestList[],
                          Int32 interpStep,
                          Float32 smoothness,
                          IP_FillModeType fillMode)

  Tcl usage:      $destImg WarpKeypoint srcImg numKeys xsrcList ysrcList xdestList ydestList interpStep ?smoothness=0.0? ?fillMode=FILL?

  Description:    Image "srcImg" is deformed smoothly. The result is
                  stored in image "destImg". The deformation is defined
                  by a set of "numKeys" key points:

                  The position of key point number "i" in "srcImg" is
                  (xsrcList[i], ysrcList[i]); (xdestList[i], ydestList[i])
                  defines the position of the key point in "destImg".
                  The pixels from "srcImg" are displaced so that the
                  pixel at position (xsrcList[i], ysrcList[i]) arrives at
                  position (xdestList[i], ydestList[i]) in "destImg". The
                  displacement of pixels whose positions do not coincide
                  with some key point is smoothly interpolated from the
                  key points.

                  Interpolating smoothly between the key points can
                  be quite time-consuming. In order to save some time,
                  the interpolating function is sampled only every
                  "interpStep" pixels; in-between values are interpolated
                  linearly.
                  If "interpStep" is 1, the interpolation function is sampled
                  for every pixel and the resulting image looks as smooth
                  as possible. Setting "interpStep" to a value greater than 1
                  saves time, but the result looks less smooth.

                  "smoothness" selects the smoothness of the function used to
                  interpolate between the key points:
                  If "smoothness" is less than or equal to 0.0, interpolation is
                  very smooth, but changing one key point has a strong
                  effect on the whole image.
                  If "smoothness" is greater than 0.0, a different interpolation
                  algorithm is used. The influence of key points is much
                  more limited to the area around the key points. "R"
                  should be somewhere around 1.0; interpolation becomes
                  smoother when "smoothness" increases.

                  "fillMode" selects how colors are assigned to output image
                  pixels which are not covered by pixels in the input
                  image. The following values for "fillMode" are accepted:

                      IP_FillModeFill     Pixels not covered by the input
                                          image are filled with the
                                          current drawing color.

                      IP_FillModeWrap     The input image is repeated in
                                          horizontal and vertical
                                          direction so that the output
                                          image is tiled with copies of
                                          the input image.

                      IP_FillModeClip     Input pixel coordinates are
                                          clipped so that regions outside
                                          the input image are filled with
                                          the color of the nearest input
                                          image pixel.

                  Notes:
                  - "xsrcList" and "ysrcList" should be in the range from 0.0 to
                    1.0. The lower left corner of "srcImg" and "destImg"
                    is at position (0.0, 0.0); the upper right corner is
                    at position (1.0, 1.0).

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    Yes
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: BlendKeypoint WarpFunct BlendFunct SetNumThreads

Top of page

WrapRect

  Name:           IP_WrapRect

  Usage:          Copy the pixels inside a rectangular source region in
                  an image, to a destination region in another image.
                  Wrap the rectangle at the image borders.

  Synopsis:       void IP_WrapRect(
                       IP_ImageId srcImg,
                       IP_ImageId destImg,
                       Int32 xs1, Int32 ys1,
                       Int32 xs2, Int32 ys2,
                       Int32 sx, Int32 sy)

  Tcl usage:      $destImg WrapRect srcImg xs1 ys1 xs2 ys2 sx sy

  Description:    One corner of the source region is at position
                  (xs1, ys1) in image "srcImg". The diagonally opposite
                  corner of the source region is at position (xs2, ys2).
                  The corner of the destination region, which corresponds
                  to (xs1, ys1) in the source region, is at position
                  (xs1+sx, ys1+sy) in image "destImg".

                  Note: The source and destination regions may NOT be
                  overlapping regions in the same image.

  States:         State settings influencing functionality:
                  Draw mask:    Yes
                  Draw mode:    Yes
                  Draw color:   Yes
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   None.

See also: BlankRect CopyRect DrawRect

Top of page

WriteImage

  Name:           IP_WriteImage

  Usage:          Write an image to a file.

  Synopsis:       UT_Bool IP_WriteImage(
                          IP_ImageId img,
                          const char *fileName,
                          const char *format,
                          const char *options)

  Tcl usage:      $img WriteImage fileName format ?options?

  Description:    Image "img" is written to pixel file "fileName" using
                  pixel file format "format" and file format options "options".
                  The current pixel data format selects, which channels will
                  be written to the file and in which format.

                  The possible option values are format dependent and are
                  identical to the values offered by the Img extension.

                  The following write options are recognized:
                  -verbose <bool>              : POI RAW SGI TGA
                  -withalpha <bool>            : POI RAW SGI TGA
                  -compression <None|Rle>      : POI     SGI TGA
                  -scanorder <TopDown|BottomUp>:     RAW     TGA
                  -useheader <bool>            :     RAW
                  -byteorder <Intel|Motorola>  :     RAW

                  The default values for the write options are:
                  -verbose <bool>              : false
                  -withalpha <bool>            : false
                  -compression <none|rle>      : rle
                  -scanorder <TopDown|BottomUp>: TopDown
                  -useheader <bool>            : true
                  -byteorder <Intel|Motorola>  : System byte order

                  Note, that FLOAT channels of POI images are always
                  written uncompressed.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: WriteSimple ReadImage NewImageFromFile NewImageFromPhoto SetFormat

Top of page

WriteSimple

  Name:           IP_WriteSimple

  Usage:          Write an image to a file - simple version.

  Synopsis:       UT_Bool IP_WriteSimple(
                          IP_ImageId img,
                          const char *fileName,
                          const char *format,
                          const char *options)

  Tcl usage:      $img WriteSimple fileName format ?options?

  Description:    Image "img" is written to pixel file "fileName" using
                  file format "format" and format options "options".
                  The pixel data format in the file will be the same as
                  in "img" for all channels.

                  The possible option values are format dependent and are
                  identical to the values offered by the Img extension.
                  See IP_WriteImage for write option details.

  States:         State settings influencing functionality:
                  Draw mask:    No
                  Draw mode:    No
                  Draw color:   No
                  Threading:    No
                  UByte format: All
                  Float format: All

  Return value:   UT_True if successful, else UT_False.

See also: NewImageFromFile ReadImage WriteImage

Top of page