< prev index next >

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

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 74,84 **** */ public class ComponentSampleModel extends SampleModel { /** Offsets for all bands in data array elements. */ ! protected int bandOffsets[]; /** Index for each bank storing a band of image data. */ protected int[] bankIndices; /** --- 74,84 ---- */ public class ComponentSampleModel extends SampleModel { /** Offsets for all bands in data array elements. */ ! protected int[] bandOffsets; /** Index for each bank storing a band of image data. */ protected int[] bankIndices; /**
*** 134,144 **** */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, ! int bandOffsets[]) { super(dataType, w, h, bandOffsets.length); this.dataType = dataType; this.pixelStride = pixelStride; this.scanlineStride = scanlineStride; this.bandOffsets = bandOffsets.clone(); --- 134,144 ---- */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, ! int[] bandOffsets) { super(dataType, w, h, bandOffsets.length); this.dataType = dataType; this.pixelStride = pixelStride; this.scanlineStride = scanlineStride; this.bandOffsets = bandOffsets.clone();
*** 197,208 **** */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, ! int bankIndices[], ! int bandOffsets[]) { super(dataType, w, h, bandOffsets.length); this.dataType = dataType; this.pixelStride = pixelStride; this.scanlineStride = scanlineStride; this.bandOffsets = bandOffsets.clone(); --- 197,208 ---- */ public ComponentSampleModel(int dataType, int w, int h, int pixelStride, int scanlineStride, ! int[] bankIndices, ! int[] bandOffsets) { super(dataType, w, h, bandOffsets.length); this.dataType = dataType; this.pixelStride = pixelStride; this.scanlineStride = scanlineStride; this.bandOffsets = bandOffsets.clone();
*** 290,302 **** } /** * Preserves band ordering with new step factor... */ ! int []orderBands(int orig[], int step) { ! int map[] = new int[orig.length]; ! int ret[] = new int[orig.length]; for (int i=0; i<map.length; i++) map[i] = i; for (int i = 0; i < ret.length; i++) { int index = i; --- 290,302 ---- } /** * Preserves band ordering with new step factor... */ ! int []orderBands(int[] orig, int step) { ! int[] map = new int[orig.length]; ! int[] ret = new int[orig.length]; for (int i=0; i<map.length; i++) map[i] = i; for (int i = 0; i < ret.length; i++) { int index = i;
*** 332,342 **** maxBandOff = Math.max(maxBandOff,bandOffsets[i]); } maxBandOff -= minBandOff; int bands = bandOffsets.length; ! int bandOff[]; int pStride = Math.abs(pixelStride); int lStride = Math.abs(scanlineStride); int bStride = Math.abs(maxBandOff); if (pStride > lStride) { --- 332,342 ---- maxBandOff = Math.max(maxBandOff,bandOffsets[i]); } maxBandOff -= minBandOff; int bands = bandOffsets.length; ! int[] bandOff; int pStride = Math.abs(pixelStride); int lStride = Math.abs(scanlineStride); int bStride = Math.abs(maxBandOff); if (pStride > lStride) {
*** 400,416 **** * @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 + " bands"); ! int newBankIndices[] = new int[bands.length]; ! int newBandOffsets[] = new int[bands.length]; for (int i=0; i<bands.length; i++) { newBankIndices[i] = bankIndices[bands[i]]; newBandOffsets[i] = bandOffsets[bands[i]]; } --- 400,416 ---- * @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 + " bands"); ! int[] newBankIndices = new int[bands.length]; ! int[] newBandOffsets = new int[bands.length]; for (int i=0; i<bands.length; i++) { newBankIndices[i] = bankIndices[bands[i]]; newBandOffsets[i] = bandOffsets[bands[i]]; }
*** 497,507 **** * @return an array containing the number of bits per sample * for all bands, where each element in the array * represents a band. */ public final int[] getSampleSize() { ! int sampleSize[] = new int [numBands]; int sizeInBits = getSampleSize(0); for (int i=0; i<numBands; i++) sampleSize[i] = sizeInBits; --- 497,507 ---- * @return an array containing the number of bits per sample * for all bands, where each element in the array * represents a band. */ public final int[] getSampleSize() { ! int[] sampleSize = new int [numBands]; int sizeInBits = getSampleSize(0); for (int i=0; i<numBands; i++) sampleSize[i] = sizeInBits;
*** 726,741 **** * * @throws NullPointerException if data is null. * @throws ArrayIndexOutOfBoundsException if the coordinates are * not in bounds, or if iArray is too small to hold the output. */ ! public int[] getPixel(int x, int y, int iArray[], DataBuffer data) { if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } ! int pixels[]; if (iArray != null) { pixels = iArray; } else { pixels = new int [numBands]; } --- 726,741 ---- * * @throws NullPointerException if data is null. * @throws ArrayIndexOutOfBoundsException if the coordinates are * not in bounds, or if iArray is too small to hold the output. */ ! public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } ! int[] pixels; if (iArray != null) { pixels = iArray; } else { pixels = new int [numBands]; }
*** 760,780 **** * @param data The DataBuffer containing the image data * @return the samples of the pixels within the specified region. * @see #setPixels(int, int, int, int, int[], DataBuffer) */ public int[] getPixels(int x, int y, int w, int h, ! int iArray[], DataBuffer data) { int x1 = x + w; int y1 = y + h; if (x < 0 || x >= width || w > width || x1 < 0 || x1 > width || y < 0 || y >= height || y > height || y1 < 0 || y1 > height) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } ! int pixels[]; if (iArray != null) { pixels = iArray; } else { pixels = new int [w*h*numBands]; } --- 760,780 ---- * @param data The DataBuffer containing the image data * @return the samples of the pixels within the specified region. * @see #setPixels(int, int, int, int, int[], DataBuffer) */ public int[] getPixels(int x, int y, int w, int h, ! int[] iArray, DataBuffer data) { int x1 = x + w; int y1 = y + h; if (x < 0 || x >= width || w > width || x1 < 0 || x1 > width || y < 0 || y >= height || y > height || y1 < 0 || y1 > height) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } ! int[] pixels; if (iArray != null) { pixels = iArray; } else { pixels = new int [w*h*numBands]; }
*** 884,900 **** * @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) { // Bounds check for 'b' will be performed automatically if ((x < 0) || (y < 0) || (x + w > width) || (y + h > height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } ! int samples[]; if (iArray != null) { samples = iArray; } else { samples = new int [w*h]; } --- 884,900 ---- * @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) { // Bounds check for 'b' will be performed automatically if ((x < 0) || (y < 0) || (x + w > width) || (y + h > height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } ! int[] samples; if (iArray != null) { samples = iArray; } else { samples = new int [w*h]; }
*** 1025,1035 **** * @param y The Y coordinate of the pixel location * @param iArray The input samples in an int array * @param data The DataBuffer containing the image data * @see #getPixel(int, int, int[], DataBuffer) */ ! public void setPixel(int x, int y, int iArray[], DataBuffer data) { if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } int pixelOffset = y*scanlineStride + x*pixelStride; --- 1025,1035 ---- * @param y The Y coordinate of the pixel location * @param iArray The input samples in an int array * @param data The DataBuffer containing the image data * @see #getPixel(int, int, int[], DataBuffer) */ ! public void setPixel(int x, int y, int[] iArray, DataBuffer data) { if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } int pixelOffset = y*scanlineStride + x*pixelStride;
*** 1051,1061 **** * @param iArray The input samples in an int array * @param data The DataBuffer containing the image data * @see #getPixels(int, int, int, int, int[], DataBuffer) */ public void setPixels(int x, int y, int w, int h, ! int iArray[], DataBuffer data) { int x1 = x + w; int y1 = y + h; if (x < 0 || x >= width || w > width || x1 < 0 || x1 > width || y < 0 || y >= height || h > height || y1 < 0 || y1 > height) --- 1051,1061 ---- * @param iArray The input samples in an int array * @param data The DataBuffer containing the image data * @see #getPixels(int, int, int, int, int[], DataBuffer) */ public void setPixels(int x, int y, int w, int h, ! int[] iArray, DataBuffer data) { int x1 = x + w; int y1 = y + h; if (x < 0 || x >= width || w > width || x1 < 0 || x1 > width || y < 0 || y >= height || h > height || y1 < 0 || y1 > height)
*** 1166,1176 **** * @param iArray The input samples in an int array * @param data The DataBuffer containing the image data * @see #getSamples(int, int, int, int, int, int[], DataBuffer) */ public void setSamples(int x, int y, int w, int h, int b, ! int iArray[], DataBuffer data) { // Bounds check for 'b' will be performed automatically if ((x < 0) || (y < 0) || (x + w > width) || (y + h > height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); } --- 1166,1176 ---- * @param iArray The input samples in an int array * @param data The DataBuffer containing the image data * @see #getSamples(int, int, int, int, int, int[], DataBuffer) */ public void setSamples(int x, int y, int w, int h, int b, ! int[] iArray, DataBuffer data) { // Bounds check for 'b' will be performed automatically if ((x < 0) || (y < 0) || (x + w > width) || (y + h > height)) { throw new ArrayIndexOutOfBoundsException ("Coordinate out of bounds!"); }
< prev index next >