java.awt.image

Class MultiPixelPackedSampleModel


public class MultiPixelPackedSampleModel
extends SampleModel

MultiPixelPackedSampleModel provides a single band model that supports multiple pixels in a single unit. Pixels have 2^n bits and 2^k pixels fit per data element.

Field Summary

Fields inherited from class java.awt.image.SampleModel

dataType, height, numBands, width

Constructor Summary

MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits)
Creates a new MultiPixelPackedSampleModel with the specified data type, which should be one of:
MultiPixelPackedSampleModel(int dataType, int w, int h, int numberOfBits, int scanlineStride, int dataBitOffset)
Creates a new MultiPixelPackedSampleModel with the specified data type, which should be one of:

Method Summary

SampleModel
createCompatibleSampleModel(int w, int h)
Creates a new MultiPixelPackedSample model with the same data type and bits per pixel as this model, but with the specified dimensions.
DataBuffer
createDataBuffer()
Creates a DataBuffer for holding pixel data in the format and layout described by this SampleModel.
SampleModel
createSubsetSampleModel(int[] bands)
Normally this method returns a sample model for accessing a subset of bands of image data, but since MultiPixelPackedSampleModel only supports a single band, this overridden implementation just returns a new instance of MultiPixelPackedSampleModel, with the same attributes as this instance.
boolean
equals(Object obj)
Tests this sample model for equality with an arbitrary object.
int
getBitOffset(int x)
The bit offset (within an element in the data buffer) of the pixels with the specified x-coordinate.
int
getDataBitOffset()
Returns the offset to the first data bit.
Object
getDataElements(int x, int y, Object obj, DataBuffer data)
Extract one pixel and return in an array of transfer type.
int
getNumDataElements()
Returns the number of data elements required to transfer a pixel in the get/setDataElements() methods.
int
getOffset(int x, int y)
Returns the index in the data buffer that stores the pixel at (x, y).
int[]
getPixel(int x, int y, int[] iArray, DataBuffer data)
Returns an array (of length 1) containing the sample for the pixel at (x, y) in the specified data buffer.
int
getPixelBitStride()
Returns the number of bits per pixel.
int
getSample(int x, int y, int b, DataBuffer data)
Returns the sample value for the pixel at (x, y) in the specified data buffer.
int[]
getSampleSize()
Returns an array containing the size (in bits) of the samples in each band.
int
getSampleSize(int band)
Returns the size of the samples in the specified band.
int
getScanlineStride()
Returns the number of data elements from a pixel in one row to the corresponding pixel in the next row.
int
getTransferType()
Returns the transfer type, which is one of the following (depending on the number of bits per sample for this model):
int
hashCode()
Returns a hash code for this MultiPixelPackedSampleModel.
void
setDataElements(int x, int y, Object obj, DataBuffer data)
Set the pixel at x, y to the value in the first element of the primitive array obj.
void
setPixel(int x, int y, int[] iArray, DataBuffer data)
Sets the sample value for the pixel at (x, y) in the specified data buffer to the specified value.
void
setSample(int x, int y, int b, int s, DataBuffer data)
Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.
String
toString()
Creates a String with some information about this SampleModel.

Methods inherited from class java.awt.image.SampleModel

createCompatibleSampleModel, createDataBuffer, createSubsetSampleModel, getDataElements, getDataElements, getDataType, getHeight, getNumBands, getNumDataElements, getPixel, getPixel, getPixel, getPixels, getPixels, getPixels, getSample, getSampleDouble, getSampleFloat, getSampleSize, getSampleSize, getSamples, getSamples, getSamples, getTransferType, getWidth, setDataElements, setDataElements, setPixel, setPixel, setPixel, setPixels, setPixels, setPixels, setSample, setSample, setSample, setSamples, setSamples, setSamples

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

MultiPixelPackedSampleModel

public MultiPixelPackedSampleModel(int dataType,
                                   int w,
                                   int h,
                                   int numberOfBits)
Creates a new MultiPixelPackedSampleModel with the specified data type, which should be one of:
Parameters:
dataType - the data type.
w - the width (in pixels).
h - the height (in pixels).
numberOfBits - the number of bits per pixel (must be a power of 2).

MultiPixelPackedSampleModel

public MultiPixelPackedSampleModel(int dataType,
                                   int w,
                                   int h,
                                   int numberOfBits,
                                   int scanlineStride,
                                   int dataBitOffset)
Creates a new MultiPixelPackedSampleModel with the specified data type, which should be one of:
Parameters:
dataType - the data type.
w - the width (in pixels).
h - the height (in pixels).
numberOfBits - the number of bits per pixel (must be a power of 2).
scanlineStride - the number of data elements from a pixel on one row to the corresponding pixel in the next row.
dataBitOffset - the offset to the first data bit.

Method Details

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)
Creates a new MultiPixelPackedSample model with the same data type and bits per pixel as this model, but with the specified dimensions.
Overrides:
createCompatibleSampleModel in interface SampleModel
Parameters:
w - the width (in pixels).
h - the height (in pixels).
Returns:
The new sample model.

createDataBuffer

public DataBuffer createDataBuffer()
Creates a DataBuffer for holding pixel data in the format and layout described by this SampleModel. The returned buffer will consist of one single bank.
Overrides:
createDataBuffer in interface SampleModel
Returns:
A new data buffer.

createSubsetSampleModel

public SampleModel createSubsetSampleModel(int[] bands)
Normally this method returns a sample model for accessing a subset of bands of image data, but since MultiPixelPackedSampleModel only supports a single band, this overridden implementation just returns a new instance of MultiPixelPackedSampleModel, with the same attributes as this instance.
Overrides:
createSubsetSampleModel in interface SampleModel
Parameters:
bands - the bands to include in the subset (this is ignored, except that if it is non-null a check is made to ensure that the array length is equal to 1).
Throws:
RasterFormatException - if bands is not null and bands.length != 1.

equals

public boolean equals(Object obj)
Tests this sample model for equality with an arbitrary object. This method returns true if and only if:
  • obj is not null;
  • obj is an instance of MultiPixelPackedSampleModel;
  • both models have the same:
    • dataType;
    • width;
    • height;
    • numberOfBits;
    • scanlineStride;
    • dataBitOffsets.
    Overrides:
    equals in interface Object
    Parameters:
    obj - the object (null permitted)
    Returns:
    true if this model is equal to obj, and false otherwise.

    getBitOffset

    public int getBitOffset(int x)
    The bit offset (within an element in the data buffer) of the pixels with the specified x-coordinate.
    Parameters:
    x - the x-coordinate.
    Returns:
    The bit offset.

    getDataBitOffset

    public int getDataBitOffset()
    Returns the offset to the first data bit.
    Returns:
    The offset to the first data bit.

    getDataElements

    public Object getDataElements(int x,
                                  int y,
                                  Object obj,
                                  DataBuffer data)
    Extract one pixel and return in an array of transfer type. Extracts the pixel at x, y from data and stores into the 0th index of the array obj, since there is only one band. If obj is null, a new array of getTransferType() is created.
    Overrides:
    getDataElements in interface SampleModel
    Parameters:
    x - The x-coordinate of the pixel rectangle to store in obj.
    y - The y-coordinate of the pixel rectangle to store in obj.
    obj - The primitive array to store the pixels into or null to force creation.
    data - The DataBuffer that is the source of the pixel data.
    Returns:
    The primitive array containing the pixel data.

    getNumDataElements

    public int getNumDataElements()
    Returns the number of data elements required to transfer a pixel in the get/setDataElements() methods.
    Overrides:
    getNumDataElements in interface SampleModel
    Returns:
    1.

    getOffset

    public int getOffset(int x,
                         int y)
    Returns the index in the data buffer that stores the pixel at (x, y).
    Parameters:
    x - the x-coordinate.
    y - the y-coordinate.
    Returns:
    The index in the data buffer that stores the pixel at (x, y).

    getPixel

    public int[] getPixel(int x,
                          int y,
                          int[] iArray,
                          DataBuffer data)
    Returns an array (of length 1) containing the sample for the pixel at (x, y) in the specified data buffer. If iArray is not null, it will be populated with the sample value and returned as the result of this function (this avoids allocating a new array instance).
    Overrides:
    getPixel in interface SampleModel
    Parameters:
    x - the x-coordinate of the pixel.
    y - the y-coordinate of the pixel.
    iArray - an array to populate with the sample values and return as the result (if null, a new array will be allocated).
    data - the data buffer (null not permitted).
    Returns:
    An array containing the pixel sample value.
    Throws:
    NullPointerException - if data is null.

    getPixelBitStride

    public int getPixelBitStride()
    Returns the number of bits per pixel.
    Returns:
    The number of bits per pixel.

    getSample

    public int getSample(int x,
                         int y,
                         int b,
                         DataBuffer data)
    Returns the sample value for the pixel at (x, y) in the specified data buffer.
    Overrides:
    getSample in interface SampleModel
    Parameters:
    x - the x-coordinate of the pixel.
    y - the y-coordinate of the pixel.
    b - the band (in the range 0 to getNumBands() - 1).
    data - the data buffer (null not permitted).
    Returns:
    The sample value.
    Throws:
    NullPointerException - if data is null.

    getSampleSize

    public int[] getSampleSize()
    Returns an array containing the size (in bits) of the samples in each band. The MultiPixelPackedSampleModel class supports only one band, so this method returns an array with length 1.
    Overrides:
    getSampleSize in interface SampleModel
    Returns:
    An array containing the size (in bits) of the samples in band zero.

    getSampleSize

    public int getSampleSize(int band)
    Returns the size of the samples in the specified band. Note that the MultiPixelPackedSampleModel supports only one band -- this method ignored the band argument, and always returns the size of band zero.
    Overrides:
    getSampleSize in interface SampleModel
    Parameters:
    band - the band (this parameter is ignored).
    Returns:
    The size of the samples in band zero.

    getScanlineStride

    public int getScanlineStride()
    Returns the number of data elements from a pixel in one row to the corresponding pixel in the next row.
    Returns:
    The scanline stride.

    getTransferType

    public int getTransferType()
    Returns the transfer type, which is one of the following (depending on the number of bits per sample for this model):
    Overrides:
    getTransferType in interface SampleModel
    Returns:
    The transfer type.

    hashCode

    public int hashCode()
    Returns a hash code for this MultiPixelPackedSampleModel.
    Overrides:
    hashCode in interface Object
    Returns:
    A hash code.

    setDataElements

    public void setDataElements(int x,
                                int y,
                                Object obj,
                                DataBuffer data)
    Set the pixel at x, y to the value in the first element of the primitive array obj.
    Overrides:
    setDataElements in interface SampleModel
    Parameters:
    x - The x-coordinate of the data elements in obj.
    y - The y-coordinate of the data elements in obj.
    obj - The primitive array containing the data elements to set.
    data - The DataBuffer to store the data elements into.

    setPixel

    public void setPixel(int x,
                         int y,
                         int[] iArray,
                         DataBuffer data)
    Sets the sample value for the pixel at (x, y) in the specified data buffer to the specified value.
    Overrides:
    setPixel in interface SampleModel
    Parameters:
    x - the x-coordinate of the pixel.
    y - the y-coordinate of the pixel.
    iArray - the sample value (null not permitted).
    data - the data buffer (null not permitted).
    Throws:
    NullPointerException - if either iArray or data is null.

    setSample

    public void setSample(int x,
                          int y,
                          int b,
                          int s,
                          DataBuffer data)
    Sets the sample value for a band for the pixel at (x, y) in the specified data buffer.
    Overrides:
    setSample in interface SampleModel
    Parameters:
    x - the x-coordinate of the pixel.
    y - the y-coordinate of the pixel.
    b - the band (in the range 0 to getNumBands() - 1).
    s - the sample value.
    data - the data buffer (null not permitted).
    Throws:
    NullPointerException - if data is null.

    toString

    public String toString()
    Creates a String with some information about this SampleModel.
    Overrides:
    toString in interface Object
    Returns:
    A String describing this SampleModel.

    Copyright (C) 2004, 2006, Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.