Index: java/awt/image/BandedSampleModel.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/awt/image/BandedSampleModel.java,v retrieving revision 1.3 diff -u -r1.3 BandedSampleModel.java --- java/awt/image/BandedSampleModel.java 16 Feb 2005 10:39:27 -0000 1.3 +++ java/awt/image/BandedSampleModel.java 7 Jun 2005 21:32:45 -0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 Free Software Foundation +/* Copyright (C) 2004, 2005, Free Software Foundation This file is part of GNU Classpath. @@ -53,9 +53,17 @@ private int numberOfBits; private int numElems; + private static int[] createBankArray(int size) + { + int[] result = new int[size]; + for (int i = 0; i < size; i++) + result[i] = i; + return result; + } + public BandedSampleModel(int dataType, int w, int h, int numBands) { - super(dataType, w, h, 1, w, new int[numBands]); + this(dataType, w, h, w, createBankArray(numBands), new int[numBands]); } public BandedSampleModel(int dataType, int w, int h, int scanlineStride, @@ -103,6 +111,10 @@ public SampleModel createSubsetSampleModel(int[] bands) { + if (bands.length > bankIndices.length) + throw new + RasterFormatException("BandedSampleModel createSubsetSampleModel too" + +" many bands"); int[] newoff = new int[bands.length]; int[] newbanks = new int[bands.length]; for (int i=0; i < bands.length; i++) @@ -112,11 +124,6 @@ newbanks[i] = bankIndices[b]; } - if (bands.length > bankIndices.length) - throw new - RasterFormatException("BandedSampleModel createSubsetSampleModel too" - +" many bands"); - return new BandedSampleModel(dataType, width, height, scanlineStride, newbanks, newoff); } @@ -192,7 +199,7 @@ { if (iArray == null) iArray = new int[numBands]; for (int i=0; i < numBands; i++) - iArray[i] = getSample(x, y, 0, data); + iArray[i] = getSample(x, y, i, data); return iArray; } @@ -223,13 +230,15 @@ { if (iArray == null) iArray = new int[w*h*numBands]; int outOffset = 0; - for (y=0; y