NAME

gems - Graphic Gems - Graphic Support Routines


SYNOPSIS

GenerateNoise(pixel,noise_type)

HSLTransform(hue,saturation,luminosity,red,green,blue)

Hull(x_offset,y_offset,polarity,columns,rows,f,g)

status=InsidePrimitive(primitive_info,annotate_info,x,y,image)

Interpolate(image,pixel,x,y)

TransformHSL(red,green,blue,hue,saturation,luminosity)

Upsample(width,height,scaled_width,pixels)


FUNCTION DESCRIPTIONS


Constrast

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

The format of the ContrastImage routine is:

    Contrast(sign,red,green,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

Function GenerateNoise adds noise to a pixel.

The format of the GenerateNoise routine is:

        GenerateNoise(pixel,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

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

The format of the HSLTransformImage routine is:

        HSLTransform(hue,saturation,luminosity,red,green,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

Function 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 routine is:

        Hull(x_offset,y_offset,polarity,columns,rows,f,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.


InsidePrimitive

Function InsidePrimitive returns True if the (x,y) position is inside the primitive as defined in primitive_info. Otherwise False is returned.

The format of the InsidePrimitive routine is:

        status=InsidePrimitive(primitive_info,annotate_info,x,y,image)

A description of each parameter follows:

status:
Function InsidePrimitive returns True if the (x,y) position is inside the primitive as defined in primitive_info. Otherwise False is returned.

primitive_info:
Specifies a pointer to a PrimitiveInfo structure.

annotate_info:
Specifies a pointer to a AnnotateInfo structure.

x,y:
Integers representing the (x,y) location in the image.

image:
The address of a structure of type Image.


Interpolate

Function Interpolate applies bi-linear interpolation between a pixel and it's neighbors.

The format of the Interpolate routine is:

        Interpolate(image,pixel,x,y)

A description of each parameter follows:

image:
The address of a structure of type Image.

pixel:
A pointer to a RunlengthPacket representing the current pixel.

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


Modulate

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

The format of the ModulateImage routine is:

    Modulate(percent_hue,percent_saturation,percent_luminosity,red,green,

      blue)

A description of each parameter follows:

percent_hue, percent_saturation, percent_luminosity:
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

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

The format of the TransformHSL routine is:

        TransformHSL(red,green,blue,hue,saturation,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

Function Upsample

The format of the UpSample routine is:

        Upsample(width,height,scaled_width,pixels)

A description of each parameter follows:

width,height:
Unsigned values representinf 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.