Package net.sourceforge.jiu.data

# Class MemoryPaletted8Image

java.lang.Object
net.sourceforge.jiu.data.MemoryByteChannelImage
net.sourceforge.jiu.data.MemoryPaletted8Image

All Implemented Interfaces:
  `ByteChannelImage`, `IntegerImage`, `Paletted8Image`, `PalettedImage`, `PalettedIntegerImage`, `PixelImage`

public class MemoryPaletted8Image extends MemoryByteChannelImage implements Paletted8Image
This class stores a paletted image with one byte per sample in memory.

Author:
  Marco Schmidt
See Also:
  - `ByteChannelImage`
  - `IntegerImage`
  - `Palette`

## Field Summary

Fields
Modifier and Type
Field
Description
`private int`
`maxSampleValue`
`private Palette`
`palette`
This image's palette.

## Constructor Summary

Constructors
Constructor
Description
`MemoryPaletted8Image(int width, int height)`
Create an image of byte channels.
`MemoryPaletted8Image(int width, int height, Palette palette)`

## Method Summary

Modifier and Type
Method
Description
`static void`
`checkPalette(Palette palette)`
`PixelImage`
`createCompatibleImage(int width, int height)`
Creates an instance of the same class as this one, with width and height given by the arguments.
`long`
`getAllocatedMemory()`
Returns the number of bytes that were dynamically allocated for this image object.
`Class`
`getImageType()`
If there is a single interface or class that describes the image data type of this class, the `Class` object associated with that interface (or class) is returned (or `null` otherwise).
`int`
`getMaxSample(int channel)`
Returns the maximum value for one of the image's channels.
`Palette`
`getPalette()`
Returns this image's palette.
`String`
`getTypeDescription()`
`void`
`setPalette(Palette palette)`
Sets this image's palette to a new value.

### Methods inherited from class net.sourceforge.jiu.data.MemoryByteChannelImage

`checkPositionAndNumber, clear, clear, clear, clear, createCopy, getBitsPerPixel, getByteSample, getByteSample, getByteSamples, getHeight, getNumChannels, getSample, getSample, getSamples, getWidth, putByteSample, putByteSample, putByteSamples, putSample, putSample, putSamples`

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

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

### Methods inherited from interface net.sourceforge.jiu.data.ByteChannelImage

`clear, clear, getByteSample, getByteSample, getByteSamples, putByteSample, putByteSample, putByteSamples`

### Methods inherited from interface net.sourceforge.jiu.data.IntegerImage

`clear, clear, getSample, getSample, getSamples, putSample, putSample, putSamples`

### Methods inherited from interface net.sourceforge.jiu.data.PixelImage

`createCopy, getBitsPerPixel, getHeight, getNumChannels, getWidth`

## Field Details

### palette

private Palette palette
This image's palette.

### maxSampleValue

private int maxSampleValue

## Constructor Details

### MemoryPaletted8Image

public MemoryPaletted8Image(int width, int height)
Create an image of byte channels. Image data will be completely in memory, so memory requirements are `width * height * numChannels` bytes. Note that the data will not be initialized, so you should not assume anything about its content.

Parameters:
  `width` - the horizontal resolution, must be non-zero and positive
  `height` - the vertical resolution, must be non-zero and positive
Throws:
  `IllegalArgumentException` - if any of the parameters are smaller than 1

### MemoryPaletted8Image

public MemoryPaletted8Image(int width, int height, Palette palette)

## Method Details

### checkPalette

public static void checkPalette(Palette palette)

### createCompatibleImage

public PixelImage createCompatibleImage(int width, int height)
Description copied from interface: `PixelImage`
Creates an instance of the same class as this one, with width and height given by the arguments.

Specified by:
  `createCompatibleImage` in interface `PixelImage`
Specified by:
  `createCompatibleImage` in class `MemoryByteChannelImage`
Parameters:
  `width` - the horizontal resolution of the new image
  `height` - the vertical resolution of the new image
Returns:
  the new image

### getAllocatedMemory

public long getAllocatedMemory()
Description copied from interface: `PixelImage`
Returns the number of bytes that were dynamically allocated for this image object.

Specified by:
  `getAllocatedMemory` in interface `PixelImage`
Overrides:
  `getAllocatedMemory` in class `MemoryByteChannelImage`
Returns:
  allocated memory in bytes

### getImageType

public Class getImageType()
Description copied from interface: `PixelImage`
If there is a single interface or class that describes the image data type of this class, the `Class` object associated with that interface (or class) is returned (or `null` otherwise). This `Class` object, if available for two image objects, can be used to find out if they are compatible. Example: `MemoryGray8Image` returns `net.sourceforge.jiu.data.Gray8Image.class`.

Specified by:
  `getImageType` in interface `PixelImage`

### getMaxSample

public int getMaxSample(int channel)
Description copied from interface: `IntegerImage`
Returns the maximum value for one of the image's channels. The minimum value is always `0`.

Specified by:
  `getMaxSample` in interface `IntegerImage`
Overrides:
  `getMaxSample` in class `MemoryByteChannelImage`
Parameters:
  `channel` - zero-based index of the channel, from `0` to `PixelImage.getNumChannels()``- 1`
Returns:
  maximum allowed sample value

### getPalette

public Palette getPalette()
Returns this image's palette.

Specified by:
  `getPalette` in interface `PalettedImage`
Returns:
  palette object
See Also:
  - `setPalette(net.sourceforge.jiu.data.Palette)`

### getTypeDescription

public String getTypeDescription()

### setPalette

public void setPalette(Palette palette)
Sets this image's palette to a new value.

Specified by:
  `setPalette` in interface `PalettedImage`
Parameters:
  `palette` - the new palette for this image
See Also:
  - `getPalette()`