< prev index next >

src/java.desktop/share/classes/java/awt/image/ComponentSampleModel.java

Print this page

        

*** 51,67 **** * in the same column of the next scanline. Band offsets denote the number * of data array elements from the first data array element of the bank * of the DataBuffer holding each band to the first sample of the band. * The bands are numbered from 0 to N-1. This class can represent image * data for which each sample is an unsigned integral number which can be ! * stored in 8, 16, or 32 bits (using <code>DataBuffer.TYPE_BYTE</code>, ! * <code>DataBuffer.TYPE_USHORT</code>, or <code>DataBuffer.TYPE_INT</code>, * respectively), data for which each sample is a signed integral number ! * which can be stored in 16 bits (using <code>DataBuffer.TYPE_SHORT</code>), * or data for which each sample is a signed float or double quantity ! * (using <code>DataBuffer.TYPE_FLOAT</code> or ! * <code>DataBuffer.TYPE_DOUBLE</code>, respectively). * All samples of a given ComponentSampleModel * are stored with the same precision. All strides and offsets must be * non-negative. This class supports * {@link DataBuffer#TYPE_BYTE TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT TYPE_USHORT}, --- 51,67 ---- * in the same column of the next scanline. Band offsets denote the number * of data array elements from the first data array element of the bank * of the DataBuffer holding each band to the first sample of the band. * The bands are numbered from 0 to N-1. This class can represent image * data for which each sample is an unsigned integral number which can be ! * stored in 8, 16, or 32 bits (using {@code DataBuffer.TYPE_BYTE}, ! * {@code DataBuffer.TYPE_USHORT}, or {@code DataBuffer.TYPE_INT}, * respectively), data for which each sample is a signed integral number ! * which can be stored in 16 bits (using {@code DataBuffer.TYPE_SHORT}), * or data for which each sample is a signed float or double quantity ! * (using {@code DataBuffer.TYPE_FLOAT} or ! * {@code DataBuffer.TYPE_DOUBLE}, respectively). * All samples of a given ComponentSampleModel * are stored with the same precision. All strides and offsets must be * non-negative. This class supports * {@link DataBuffer#TYPE_BYTE TYPE_BYTE}, * {@link DataBuffer#TYPE_USHORT TYPE_USHORT},
*** 81,97 **** /** Index for each bank storing a band of image data. */ protected int[] bankIndices; /** * The number of bands in this ! * <code>ComponentSampleModel</code>. */ protected int numBands = 1; /** * The number of banks in this ! * <code>ComponentSampleModel</code>. */ protected int numBanks = 1; /** * Line stride (in data array elements) of the region of image --- 81,97 ---- /** Index for each bank storing a band of image data. */ protected int[] bankIndices; /** * The number of bands in this ! * {@code ComponentSampleModel}. */ protected int numBands = 1; /** * The number of banks in this ! * {@code ComponentSampleModel}. */ protected int numBanks = 1; /** * Line stride (in data array elements) of the region of image
*** 116,137 **** * @param pixelStride the pixel stride of the region of image * data described * @param scanlineStride the line stride of the region of image * data described * @param bandOffsets the offsets of all bands ! * @throws IllegalArgumentException if <code>w</code> or ! * <code>h</code> is not greater than 0 ! * @throws IllegalArgumentException if <code>pixelStride</code> * is less than 0 ! * @throws IllegalArgumentException if <code>scanlineStride</code> * is less than 0 ! * @throws IllegalArgumentException if <code>numBands</code> * is less than 1 ! * @throws IllegalArgumentException if the product of <code>w</code> ! * and <code>h</code> is greater than ! * <code>Integer.MAX_VALUE</code> ! * @throws IllegalArgumentException if <code>dataType</code> is not * one of the supported data types */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride, --- 116,137 ---- * @param pixelStride the pixel stride of the region of image * data described * @param scanlineStride the line stride of the region of image * data described * @param bandOffsets the offsets of all bands ! * @throws IllegalArgumentException if {@code w} or ! * {@code h} is not greater than 0 ! * @throws IllegalArgumentException if {@code pixelStride} * is less than 0 ! * @throws IllegalArgumentException if {@code scanlineStride} * is less than 0 ! * @throws IllegalArgumentException if {@code numBands} * is less than 1 ! * @throws IllegalArgumentException if the product of {@code w} ! * and {@code h} is greater than ! * {@code Integer.MAX_VALUE} ! * @throws IllegalArgumentException if {@code dataType} is not * one of the supported data types */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride,
*** 179,200 **** * data described * @param scanlineStride The line stride of the region of image * data described * @param bankIndices the bank indices of all bands * @param bandOffsets the band offsets of all bands ! * @throws IllegalArgumentException if <code>w</code> or ! * <code>h</code> is not greater than 0 ! * @throws IllegalArgumentException if <code>pixelStride</code> * is less than 0 ! * @throws IllegalArgumentException if <code>scanlineStride</code> * is less than 0 * @throws IllegalArgumentException if the length of ! * <code>bankIndices</code> does not equal the length of ! * <code>bankOffsets</code> * @throws IllegalArgumentException if any of the bank indices ! * of <code>bandIndices</code> is less than 0 ! * @throws IllegalArgumentException if <code>dataType</code> is not * one of the supported data types */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride, --- 179,200 ---- * data described * @param scanlineStride The line stride of the region of image * data described * @param bankIndices the bank indices of all bands * @param bandOffsets the band offsets of all bands ! * @throws IllegalArgumentException if {@code w} or ! * {@code h} is not greater than 0 ! * @throws IllegalArgumentException if {@code pixelStride} * is less than 0 ! * @throws IllegalArgumentException if {@code scanlineStride} * is less than 0 * @throws IllegalArgumentException if the length of ! * {@code bankIndices} does not equal the length of ! * {@code bankOffsets} * @throws IllegalArgumentException if any of the bank indices ! * of {@code bandIndices} is less than 0 ! * @throws IllegalArgumentException if {@code dataType} is not * one of the supported data types */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride,
*** 310,328 **** } return ret; } /** ! * Creates a new <code>ComponentSampleModel</code> with the specified ! * width and height. The new <code>SampleModel</code> will have the same * number of bands, storage data type, interleaving scheme, and ! * pixel stride as this <code>SampleModel</code>. ! * @param w the width of the resulting <code>SampleModel</code> ! * @param h the height of the resulting <code>SampleModel</code> ! * @return a new <code>ComponentSampleModel</code> with the specified size ! * @throws IllegalArgumentException if <code>w</code> or ! * <code>h</code> is not greater than 0 */ public SampleModel createCompatibleSampleModel(int w, int h) { SampleModel ret=null; long size; int minBandOff=bandOffsets[0]; --- 310,328 ---- } return ret; } /** ! * Creates a new {@code ComponentSampleModel} with the specified ! * width and height. The new {@code SampleModel} will have the same * number of bands, storage data type, interleaving scheme, and ! * pixel stride as this {@code SampleModel}. ! * @param w the width of the resulting {@code SampleModel} ! * @param h the height of the resulting {@code SampleModel} ! * @return a new {@code ComponentSampleModel} with the specified size ! * @throws IllegalArgumentException if {@code w} or ! * {@code h} is not greater than 0 */ public SampleModel createCompatibleSampleModel(int w, int h) { SampleModel ret=null; long size; int minBandOff=bandOffsets[0];
*** 396,408 **** * used with any DataBuffer that the existing ComponentSampleModel * can be used with. The new ComponentSampleModel/DataBuffer * combination will represent an image with a subset of the bands * of the original ComponentSampleModel/DataBuffer combination. * @param bands a subset of bands from this ! * <code>ComponentSampleModel</code> ! * @return a <code>ComponentSampleModel</code> created with a subset ! * of bands from this <code>ComponentSampleModel</code>. */ public SampleModel createSubsetSampleModel(int bands[]) { if (bands.length > bankIndices.length) throw new RasterFormatException("There are only " + bankIndices.length + --- 396,408 ---- * used with any DataBuffer that the existing ComponentSampleModel * can be used with. The new ComponentSampleModel/DataBuffer * combination will represent an image with a subset of the bands * of the original ComponentSampleModel/DataBuffer combination. * @param bands a subset of bands from this ! * {@code ComponentSampleModel} ! * @return a {@code ComponentSampleModel} created with a subset ! * of bands from this {@code ComponentSampleModel}. */ public SampleModel createSubsetSampleModel(int bands[]) { if (bands.length > bankIndices.length) throw new RasterFormatException("There are only " + bankIndices.length +
*** 420,436 **** this.scanlineStride, newBankIndices, newBandOffsets); } /** ! * Creates a <code>DataBuffer</code> that corresponds to this ! * <code>ComponentSampleModel</code>. ! * The <code>DataBuffer</code> object's data type, number of banks, ! * and size are be consistent with this <code>ComponentSampleModel</code>. ! * @return a <code>DataBuffer</code> whose data type, number of banks * and size are consistent with this ! * <code>ComponentSampleModel</code>. */ public DataBuffer createDataBuffer() { DataBuffer dataBuffer = null; int size = getBufferSize(); --- 420,436 ---- this.scanlineStride, newBankIndices, newBandOffsets); } /** ! * Creates a {@code DataBuffer} that corresponds to this ! * {@code ComponentSampleModel}. ! * The {@code DataBuffer} object's data type, number of banks, ! * and size are be consistent with this {@code ComponentSampleModel}. ! * @return a {@code DataBuffer} whose data type, number of banks * and size are consistent with this ! * {@code ComponentSampleModel}. */ public DataBuffer createDataBuffer() { DataBuffer dataBuffer = null; int size = getBufferSize();
*** 459,471 **** } /** Gets the offset for the first band of pixel (x,y). * A sample of the first band can be retrieved from a ! * <code>DataBuffer</code> ! * <code>data</code> with a <code>ComponentSampleModel</code> ! * <code>csm</code> as * <pre> * data.getElem(csm.getOffset(x, y)); * </pre> * @param x the X location of the pixel * @param y the Y location of the pixel --- 459,471 ---- } /** Gets the offset for the first band of pixel (x,y). * A sample of the first band can be retrieved from a ! * {@code DataBuffer} ! * {@code data} with a {@code ComponentSampleModel} ! * {@code csm} as * <pre> * data.getElem(csm.getOffset(x, y)); * </pre> * @param x the X location of the pixel * @param y the Y location of the pixel
*** 475,487 **** int offset = y*scanlineStride + x*pixelStride + bandOffsets[0]; return offset; } /** Gets the offset for band b of pixel (x,y). ! * A sample of band <code>b</code> can be retrieved from a ! * <code>DataBuffer</code> <code>data</code> ! * with a <code>ComponentSampleModel</code> <code>csm</code> as * <pre> * data.getElem(csm.getOffset(x, y, b)); * </pre> * @param x the X location of the specified pixel * @param y the Y location of the specified pixel --- 475,487 ---- int offset = y*scanlineStride + x*pixelStride + bandOffsets[0]; return offset; } /** Gets the offset for band b of pixel (x,y). ! * A sample of band {@code b} can be retrieved from a ! * {@code DataBuffer data} ! * with a {@code ComponentSampleModel csm} as * <pre> * data.getElem(csm.getOffset(x, y, b)); * </pre> * @param x the X location of the specified pixel * @param y the Y location of the specified pixel
*** 529,546 **** public final int [] getBandOffsets() { return bandOffsets.clone(); } /** Returns the scanline stride of this ComponentSampleModel. ! * @return the scanline stride of this <code>ComponentSampleModel</code>. */ public final int getScanlineStride() { return scanlineStride; } /** Returns the pixel stride of this ComponentSampleModel. ! * @return the pixel stride of this <code>ComponentSampleModel</code>. */ public final int getPixelStride() { return pixelStride; } --- 529,546 ---- public final int [] getBandOffsets() { return bandOffsets.clone(); } /** Returns the scanline stride of this ComponentSampleModel. ! * @return the scanline stride of this {@code ComponentSampleModel}. */ public final int getScanlineStride() { return scanlineStride; } /** Returns the pixel stride of this ComponentSampleModel. ! * @return the pixel stride of this {@code ComponentSampleModel}. */ public final int getPixelStride() { return pixelStride; }
*** 548,610 **** * Returns the number of data elements needed to transfer a pixel * with the * {@link #getDataElements(int, int, Object, DataBuffer) } and * {@link #setDataElements(int, int, Object, DataBuffer) } * methods. ! * For a <code>ComponentSampleModel</code>, this is identical to the * number of bands. * @return the number of data elements needed to transfer a pixel with ! * the <code>getDataElements</code> and ! * <code>setDataElements</code> methods. * @see java.awt.image.SampleModel#getNumDataElements * @see #getNumBands */ public final int getNumDataElements() { return getNumBands(); } /** * Returns data for a single pixel in a primitive array of type ! * <code>TransferType</code>. For a <code>ComponentSampleModel</code>, * this is the same as the data type, and samples are returned ! * one per array element. Generally, <code>obj</code> should ! * be passed in as <code>null</code>, so that the <code>Object</code> * is created automatically and is the right primitive data type. * <p> * The following code illustrates transferring data for one pixel from ! * <code>DataBuffer</code> <code>db1</code>, whose storage layout is ! * described by <code>ComponentSampleModel</code> <code>csm1</code>, ! * to <code>DataBuffer</code> <code>db2</code>, whose storage layout ! * is described by <code>ComponentSampleModel</code> <code>csm2</code>. * The transfer is usually more efficient than using ! * <code>getPixel</code> and <code>setPixel</code>. * <pre> * ComponentSampleModel csm1, csm2; * DataBufferInt db1, db2; * csm2.setDataElements(x, y, * csm1.getDataElements(x, y, null, db1), db2); * </pre> * ! * Using <code>getDataElements</code> and <code>setDataElements</code> ! * to transfer between two <code>DataBuffer/SampleModel</code> ! * pairs is legitimate if the <code>SampleModel</code> objects have * the same number of bands, corresponding bands have the same number of ! * bits per sample, and the <code>TransferType</code>s are the same. * <p> ! * If <code>obj</code> is not <code>null</code>, it should be a ! * primitive array of type <code>TransferType</code>. ! * Otherwise, a <code>ClassCastException</code> is thrown. An ! * <code>ArrayIndexOutOfBoundsException</code> might be thrown if the ! * coordinates are not in bounds, or if <code>obj</code> is not ! * <code>null</code> and is not large enough to hold * the pixel data. * * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location ! * @param obj if non-<code>null</code>, a primitive array * in which to return the pixel data ! * @param data the <code>DataBuffer</code> containing the image data * @return the data of the specified pixel * @see #setDataElements(int, int, Object, DataBuffer) * * @throws NullPointerException if data is null. * @throws ArrayIndexOutOfBoundsException if the coordinates are --- 548,610 ---- * Returns the number of data elements needed to transfer a pixel * with the * {@link #getDataElements(int, int, Object, DataBuffer) } and * {@link #setDataElements(int, int, Object, DataBuffer) } * methods. ! * For a {@code ComponentSampleModel}, this is identical to the * number of bands. * @return the number of data elements needed to transfer a pixel with ! * the {@code getDataElements} and ! * {@code setDataElements} methods. * @see java.awt.image.SampleModel#getNumDataElements * @see #getNumBands */ public final int getNumDataElements() { return getNumBands(); } /** * Returns data for a single pixel in a primitive array of type ! * {@code TransferType}. For a {@code ComponentSampleModel}, * this is the same as the data type, and samples are returned ! * one per array element. Generally, {@code obj} should ! * be passed in as {@code null}, so that the {@code Object} * is created automatically and is the right primitive data type. * <p> * The following code illustrates transferring data for one pixel from ! * {@code DataBuffer db1}, whose storage layout is ! * described by {@code ComponentSampleModel csm1}, ! * to {@code DataBuffer db2}, whose storage layout ! * is described by {@code ComponentSampleModel csm2}. * The transfer is usually more efficient than using ! * {@code getPixel} and {@code setPixel}. * <pre> * ComponentSampleModel csm1, csm2; * DataBufferInt db1, db2; * csm2.setDataElements(x, y, * csm1.getDataElements(x, y, null, db1), db2); * </pre> * ! * Using {@code getDataElements} and {@code setDataElements} ! * to transfer between two {@code DataBuffer/SampleModel} ! * pairs is legitimate if the {@code SampleModel} objects have * the same number of bands, corresponding bands have the same number of ! * bits per sample, and the {@code TransferType}s are the same. * <p> ! * If {@code obj} is not {@code null}, it should be a ! * primitive array of type {@code TransferType}. ! * Otherwise, a {@code ClassCastException} is thrown. An ! * {@code ArrayIndexOutOfBoundsException} might be thrown if the ! * coordinates are not in bounds, or if {@code obj} is not ! * {@code null} and is not large enough to hold * the pixel data. * * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location ! * @param obj if non-{@code null}, a primitive array * in which to return the pixel data ! * @param data the {@code DataBuffer} containing the image data * @return the data of the specified pixel * @see #setDataElements(int, int, Object, DataBuffer) * * @throws NullPointerException if data is null. * @throws ArrayIndexOutOfBoundsException if the coordinates are
*** 713,723 **** } /** * Returns all samples for the specified pixel in an int array, * one sample per array element. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if * the coordinates are not in bounds. * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location * @param iArray If non-null, returns the samples in this array * @param data The DataBuffer containing the image data --- 713,723 ---- } /** * Returns all samples for the specified pixel in an int array, * one sample per array element. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if * the coordinates are not in bounds. * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location * @param iArray If non-null, returns the samples in this array * @param data The DataBuffer containing the image data
*** 748,758 **** } /** * Returns all samples for the specified rectangle of pixels in * an int array, one sample per array element. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w The width of the pixel rectangle * @param h The height of the pixel rectangle --- 748,758 ---- } /** * Returns all samples for the specified rectangle of pixels in * an int array, one sample per array element. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w The width of the pixel rectangle * @param h The height of the pixel rectangle
*** 796,811 **** } /** * Returns as int the sample in a specified band for the pixel * located at (x,y). ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if * the coordinates are not in bounds. * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location * @param b the band to return ! * @param data the <code>DataBuffer</code> containing the image data * @return the sample in a specified band for the specified pixel * @see #setSample(int, int, int, int, DataBuffer) */ public int getSample(int x, int y, int b, DataBuffer data) { // Bounds check for 'b' will be performed automatically --- 796,811 ---- } /** * Returns as int the sample in a specified band for the pixel * located at (x,y). ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if * the coordinates are not in bounds. * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location * @param b the band to return ! * @param data the {@code DataBuffer} containing the image data * @return the sample in a specified band for the specified pixel * @see #setSample(int, int, int, int, DataBuffer) */ public int getSample(int x, int y, int b, DataBuffer data) { // Bounds check for 'b' will be performed automatically
*** 820,830 **** } /** * Returns the sample in a specified band * for the pixel located at (x,y) as a float. ! * An <code>ArrayIndexOutOfBoundsException</code> might be * thrown if the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to return * @param data The DataBuffer containing the image data --- 820,830 ---- } /** * Returns the sample in a specified band * for the pixel located at (x,y) as a float. ! * An {@code ArrayIndexOutOfBoundsException} might be * thrown if the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to return * @param data The DataBuffer containing the image data
*** 845,855 **** } /** * Returns the sample in a specified band * for a pixel located at (x,y) as a double. ! * An <code>ArrayIndexOutOfBoundsException</code> might be * thrown if the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to return * @param data The DataBuffer containing the image data --- 845,855 ---- } /** * Returns the sample in a specified band * for a pixel located at (x,y) as a double. ! * An {@code ArrayIndexOutOfBoundsException} might be * thrown if the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to return * @param data The DataBuffer containing the image data
*** 870,889 **** } /** * Returns the samples in a specified band for the specified rectangle * of pixels in an int array, one sample per data array element. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w the width of the pixel rectangle * @param h the height of the pixel rectangle * @param b the band to return ! * @param iArray if non-<code>null</code>, returns the samples * in this array ! * @param data the <code>DataBuffer</code> containing the image data * @return the samples in the specified band of the specified pixel * @see #setSamples(int, int, int, int, int, int[], DataBuffer) */ public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) { --- 870,889 ---- } /** * Returns the samples in a specified band for the specified rectangle * of pixels in an int array, one sample per data array element. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w the width of the pixel rectangle * @param h the height of the pixel rectangle * @param b the band to return ! * @param iArray if non-{@code null}, returns the samples * in this array ! * @param data the {@code DataBuffer} containing the image data * @return the samples in the specified band of the specified pixel * @see #setSamples(int, int, int, int, int, int[], DataBuffer) */ public int[] getSamples(int x, int y, int w, int h, int b, int iArray[], DataBuffer data) {
*** 913,950 **** return samples; } /** * Sets the data for a single pixel in the specified ! * <code>DataBuffer</code> from a primitive array of type ! * <code>TransferType</code>. For a <code>ComponentSampleModel</code>, * this is the same as the data type, and samples are transferred * one per array element. * <p> * The following code illustrates transferring data for one pixel from ! * <code>DataBuffer</code> <code>db1</code>, whose storage layout is ! * described by <code>ComponentSampleModel</code> <code>csm1</code>, ! * to <code>DataBuffer</code> <code>db2</code>, whose storage layout ! * is described by <code>ComponentSampleModel</code> <code>csm2</code>. * The transfer is usually more efficient than using ! * <code>getPixel</code> and <code>setPixel</code>. * <pre> * ComponentSampleModel csm1, csm2; * DataBufferInt db1, db2; * csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1), * db2); * </pre> ! * Using <code>getDataElements</code> and <code>setDataElements</code> ! * to transfer between two <code>DataBuffer/SampleModel</code> pairs ! * is legitimate if the <code>SampleModel</code> objects have * the same number of bands, corresponding bands have the same number of ! * bits per sample, and the <code>TransferType</code>s are the same. * <p> ! * A <code>ClassCastException</code> is thrown if <code>obj</code> is not ! * a primitive array of type <code>TransferType</code>. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if ! * the coordinates are not in bounds, or if <code>obj</code> is not large * enough to hold the pixel data. * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location * @param obj a primitive array containing pixel data * @param data the DataBuffer containing the image data --- 913,950 ---- return samples; } /** * Sets the data for a single pixel in the specified ! * {@code DataBuffer} from a primitive array of type ! * {@code TransferType}. For a {@code ComponentSampleModel}, * this is the same as the data type, and samples are transferred * one per array element. * <p> * The following code illustrates transferring data for one pixel from ! * {@code DataBuffer db1}, whose storage layout is ! * described by {@code ComponentSampleModel csm1}, ! * to {@code DataBuffer db2}, whose storage layout ! * is described by {@code ComponentSampleModel csm2}. * The transfer is usually more efficient than using ! * {@code getPixel} and {@code setPixel}. * <pre> * ComponentSampleModel csm1, csm2; * DataBufferInt db1, db2; * csm2.setDataElements(x, y, csm1.getDataElements(x, y, null, db1), * db2); * </pre> ! * Using {@code getDataElements} and {@code setDataElements} ! * to transfer between two {@code DataBuffer/SampleModel} pairs ! * is legitimate if the {@code SampleModel} objects have * the same number of bands, corresponding bands have the same number of ! * bits per sample, and the {@code TransferType}s are the same. * <p> ! * A {@code ClassCastException} is thrown if {@code obj} is not ! * a primitive array of type {@code TransferType}. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if ! * the coordinates are not in bounds, or if {@code obj} is not large * enough to hold the pixel data. * @param x the X coordinate of the pixel location * @param y the Y coordinate of the pixel location * @param obj a primitive array containing pixel data * @param data the DataBuffer containing the image data
*** 1015,1026 **** } } /** ! * Sets a pixel in the <code>DataBuffer</code> using an int array of ! * samples for input. An <code>ArrayIndexOutOfBoundsException</code> * might be thrown if the coordinates are * not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param iArray The input samples in an int array --- 1015,1026 ---- } } /** ! * Sets a pixel in the {@code DataBuffer} using an int array of ! * samples for input. An {@code ArrayIndexOutOfBoundsException} * might be thrown if the coordinates are * not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param iArray The input samples in an int array
*** 1040,1050 **** } /** * Sets all samples for a rectangle of pixels from an int array containing * one sample per array element. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if the * coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w The width of the pixel rectangle * @param h The height of the pixel rectangle --- 1040,1050 ---- } /** * Sets all samples for a rectangle of pixels from an int array containing * one sample per array element. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if the * coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w The width of the pixel rectangle * @param h The height of the pixel rectangle
*** 1080,1091 **** } } /** * Sets a sample in the specified band for the pixel located at (x,y) ! * in the <code>DataBuffer</code> using an int for input. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if the * coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b the band to set * @param s the input sample as an int --- 1080,1091 ---- } } /** * Sets a sample in the specified band for the pixel located at (x,y) ! * in the {@code DataBuffer} using an int for input. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if the * coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b the band to set * @param s the input sample as an int
*** 1103,1114 **** y*scanlineStride + x*pixelStride + bandOffsets[b], s); } /** * Sets a sample in the specified band for the pixel located at (x,y) ! * in the <code>DataBuffer</code> using a float for input. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to set * @param s The input sample as a float --- 1103,1114 ---- y*scanlineStride + x*pixelStride + bandOffsets[b], s); } /** * Sets a sample in the specified band for the pixel located at (x,y) ! * in the {@code DataBuffer} using a float for input. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to set * @param s The input sample as a float
*** 1128,1139 **** s); } /** * Sets a sample in the specified band for the pixel located at (x,y) ! * in the <code>DataBuffer</code> using a double for input. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to set * @param s The input sample as a double --- 1128,1139 ---- s); } /** * Sets a sample in the specified band for the pixel located at (x,y) ! * in the {@code DataBuffer} using a double for input. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if * the coordinates are not in bounds. * @param x The X coordinate of the pixel location * @param y The Y coordinate of the pixel location * @param b The band to set * @param s The input sample as a double
*** 1154,1164 **** } /** * Sets the samples in the specified band for the specified rectangle * of pixels from an int array containing one sample per data array element. ! * An <code>ArrayIndexOutOfBoundsException</code> might be thrown if the * coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w The width of the pixel rectangle * @param h The height of the pixel rectangle --- 1154,1164 ---- } /** * Sets the samples in the specified band for the specified rectangle * of pixels from an int array containing one sample per data array element. ! * An {@code ArrayIndexOutOfBoundsException} might be thrown if the * coordinates are not in bounds. * @param x The X coordinate of the upper left pixel location * @param y The Y coordinate of the upper left pixel location * @param w The width of the pixel rectangle * @param h The height of the pixel rectangle
< prev index next >