NAME

gems - Graphic Gems - Graphic Support Methods


SYNOPSIS

GenerateNoise(pixel,noise_type)

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

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

opacity=InsidePrimitive(primitive_info,annotate_info,target,image)

InterpolateColor(image,x_offset,y_offset)

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

Upsample(width,height,scaled_width,pixels)


FUNCTION DESCRIPTIONS


Constrast

Method 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

Method 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

Method 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

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 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

Method InsidePrimitive returns the opacity of the pen at the (x,y) position of the image. The opacity is Opaque if the (x,y) position is within the primitive as defined in primitive_info. A value less than fully opaque and greater than fully transparent is returned for a primitive edge pixel to allow for anti-aliasing. Otherwise fully transparent is returned.

Rick Mabry provided the algorithms for anti-aliased primitives.

The format of the InsidePrimitive routine is:

        opacity=InsidePrimitive(primitive_info,annotate_info,target,image)

A description of each parameter follows:

opacity:

Method InsidePrimitive returns a pen opacity associated with the (x,y) position of the image.

primitive_info:

Specifies a pointer to a PrimitiveInfo structure.

annotate_info:

Specifies a pointer to a AnnotateInfo structure.

target:

PointInfo representing the (x,y) location in the image.

image:

The address of a structure of type Image.


InterpolateColor

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

The format of the InterpolateColor routine is:

        InterpolateColor(image,x_offset,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 routine is:

    Modulate(percent_hue,percent_saturation,percent_brightness,red,green,

      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 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

Method Upsample doubles the size of the image.

The format of the UpSample routine is:

        Upsample(width,height,scaled_width,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.