- NAME
- SYNOPSIS
- FUNCTION DESCRIPTIONS
  - Constrast
  - GenerateNoise
  - HSLTransform
  - Hull
  - InterpolateColor
  - Modulate
  - TransformHSL
  - Upsample

# NAME

gems - Graphic Gems - Graphic Support Methods

# SYNOPSIS

Quantum GenerateNoise(constQuantumpixel,constNoiseTypenoise_type)

# FUNCTION DESCRIPTIONS

## Constrast

Method Contrast enhances the intensity differences between the lighter and darker elements of the image.

The format of the Contrast method is:

        void Contrast(const int sign,Quantum *red,Quantum *green,Quantum *blue)

A description of each parameter follows:

sign:

  A positive value enhances the contrast otherwise it is reduced.

red, green, blue:

  A pointer to a pixel component of type Quantum.

## GenerateNoise

Method GenerateNoise adds noise to a pixel.

The format of the GenerateNoise method is:

            Quantum GenerateNoise(const Quantum pixel,const NoiseType noise_type)

A description of each parameter follows:

pixel:

  A structure of type Quantum.

noise_type:

  The type of noise: Gaussian, multiplicative Gaussian, impulse, laplacian, or Poisson.

## HSLTransform

Method HSLTransform converts a (hue, saturation, luminosity) to a (red, green, blue) triple.

The format of the HSLTransformImage method is:

        void HSLTransform(const double hue,const double saturation,
          const double luminosity,Quantum *red,Quantum *green,Quantum *blue)

A description of each parameter follows:

hue, saturation, luminosity:

  A double value representing a component of the HSL color space.

red, green, blue:

  A pointer to a pixel component of type Quantum.

## Hull

Method Hull implements the eight hull algorithm described in Applied Optics, Vol. 24, No. 10, 15 May 1985, ``Geometric filter for Speckle Reduction'', by Thomas R Crimmins. Each pixel in the image is replaced by one of its eight of its surrounding pixels using a polarity and negative hull function.

The format of the Hull method is:

        void Hull(const int x_offset,const int y_offset,const int polarity,
          const unsigned int columns,const unsigned int rows,Quantum *f,Quantum *g)

A description of each parameter follows:

x_offset, y_offset:

  An integer value representing the offset of the current pixel within the image.

polarity:

  An integer value declaring the polarity (+,-).

columns, rows:

  Specifies the number of rows and columns in the image.

f, g:

  A pointer to an image pixel and one of it's neighbor.

## InterpolateColor

Method InterpolateColor applies bi-linear interpolation between a pixel and it's neighbors.

The format of the InterpolateColor method is:

        ColorPacket InterpolateColor(Image *image,const double x_offset,
          const double y_offset)

A description of each parameter follows:

image:

  The address of a structure of type Image.

x_offset,y_offset:

  A double representing the current (x,y) position of the pixel.

## Modulate

Method Modulate modulates the hue, saturation, and brightness of an image.

The format of the ModulateImage method is:

        void Modulate(double percent_hue,double percent_saturation,
          double percent_brightness,Quantum *red,Quantum *green,Quantum *blue)
          blue)

A description of each parameter follows:

percent_hue, percent_saturation, percent_brightness:

  A double value representing the percent change in a component of the HSL color space.

red, green, blue:

  A pointer to a pixel component of type Quantum.

## TransformHSL

Method TransformHSL converts a (red, green, blue) to a (hue, saturation, luminosity) triple.

The format of the TransformHSL method is:

        void TransformHSL(const Quantum red,const Quantum green,
          const Quantum blue,double *hue,double *saturation,double *luminosity)

A description of each parameter follows:

red, green, blue:

  A Quantum value representing the red, green, and blue component of a pixel..

hue, saturation, luminosity:

  A pointer to a double value representing a component of the HSL color space.

## Upsample

Method Upsample doubles the size of the image.

The format of the UpSample method is:

        void Upsample(const unsigned int width,const unsigned int height,
          const unsigned int scaled_width,unsigned char *pixels)

A description of each parameter follows:

width,height:

  Unsigned values representing the width and height of the image pixel array.

scaled_width:

  Specifies the final width of the upsampled pixel array.

pixels:

  An unsigned char containing the pixel data. On output the upsampled pixels are returned here.