Package net.sourceforge.jiu.color.adjustment

# Class Contrast

java.lang.Object
net.sourceforge.jiu.ops.Operation
net.sourceforge.jiu.ops.ImageToImageOperation
net.sourceforge.jiu.ops.LookupTableOperation
net.sourceforge.jiu.color.adjustment.Contrast

public class Contrast extends LookupTableOperation
Adjusts the contrast of an image. The amount of adjustment is given to the constructor as a percentage value between -100 and 100. -100 will make the resulting image middle-gray, 0 will leave it unchanged, 100 will map it to the eight corners of the color cube.

### Usage examples

Both examples increase contrast by 30 percent.

If all you want is to create a new image with adjusted contrast from the image data of an existing image, simply use the static helper method:

    PixelImage adjustedImage = Contrast.adjust(inputImage, 30);

This leaves the original image inputImage unchanged and allocates a second image object which is here assigned to the variable adjustedImage.

If you want more control over parameters, create your own Contrast object. You can then reuse image objects, e.g. to write the adjusted image data to the original image object:

     Contrast op = new Contrast();
     op.setInputImage(image);
     op.setOutputImage(image);
     op.setContrast(30);
     op.process();
     // at this point, image will contain the adjusted image data,
     // the original data wil be overwritten

Author:
  Marco Schmidt

## Field Summary

Fields
Modifier and Type
Field
Description
`private int`
`contrast`

## Constructor Summary

Constructors
Constructor
Description
`Contrast()`

## Method Summary

Modifier and Type
Method
Description
`static PixelImage`
`adjust(PixelImage input, int percentage)`
This static helper method is more simple to use when all you need are the standard options.
`private int[]`
`createLookupTable(int numSamples, int contrast)`
`int`
`getContrast()`
Returns the contrast adjustment value associated with this opperation.
`void`
`process()`
This method does the actual work of the operation.
`private void`
`process(Paletted8Image in, Paletted8Image out)`
`void`
`setContrast(int newContrast)`
Sets the value for contrast adjustment to be used within this operation.

### Methods inherited from class net.sourceforge.jiu.ops.LookupTableOperation

`getNumTables, getTable, prepareImages, setNumTables, setTable, setTables`

### Methods inherited from class net.sourceforge.jiu.ops.ImageToImageOperation

`canInputAndOutputBeEqual, ensureImagesHaveSameResolution, ensureInputImageIsAvailable, ensureOutputImageResolution, getInputImage, getOutputImage, setCanInputAndOutputBeEqual, setInputImage, setOutputImage`

### Methods inherited from class net.sourceforge.jiu.ops.Operation

`addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### contrast

private int contrast

## Constructor Details

### Contrast

public Contrast()

## Method Details

### adjust

public static PixelImage adjust(PixelImage input, int percentage)
This static helper method is more simple to use when all you need are the standard options.

Parameters:
  `input` - the image to work on
  `percentage` - contrast modification, from -100 to 100
Returns:
  a new image with adjusted contrast

### createLookupTable

private int[] createLookupTable(int numSamples, int contrast)

### getContrast

public int getContrast()
Returns the contrast adjustment value associated with this opperation. The value lies between -100 and 100 (including both values).

Returns:
  contrast adjustment
See Also:
  - `setContrast(int)`

### process

private void process(Paletted8Image in, Paletted8Image out)

### process

public void process() throws MissingParameterException, WrongParameterException
Description copied from class: `Operation`
This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.

Overrides:
  `process` in class `LookupTableOperation`
Throws:
  `MissingParameterException` - if any mandatory parameter was not given to the operation
  `WrongParameterException` - if at least one of the input parameters was not initialized appropriately (values out of the valid interval, etc.)

### setContrast

public void setContrast(int newContrast)
Sets the value for contrast adjustment to be used within this operation.

Parameters:
  `newContrast` - new contrast, between -100 and 100 (including both values)
Throws:
  `IllegalArgumentException` - if the new contrast value is not in the above mentioned interval
See Also:
  - `getContrast()`