/*
* Copyright ( c ) 2010 , 2011 , 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 .
*
* This code 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
* version 2 for more details ( a copy is included in the LICENSE file that
* accompanied this code ) .
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work ; if not , write to the Free Software Foundation ,
* Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA .
*
* Please contact Oracle , 500 Oracle Parkway , Redwood Shores , CA 94065 USA
* or visit www . oracle . com if you need additional information or have any
* questions .
*/
/*
* @ test
* @ bug 6735275 6993561
* @ summary Test verifies that SampleModel . getSamples ( ) SampleModel . setSamples ( )
* throw an appropriate exception if coordinates are not in bounds .
*
* @ run main GetSamplesTest
*/
import java.awt.image.BandedSampleModel;
import java.awt.image.ComponentSampleModel;
import java.awt.image.DataBuffer;
import java.awt.image.MultiPixelPackedSampleModel;
import java.awt.image.PixelInterleavedSampleModel;
import java.awt.image.SampleModel;
import java.awt.image.SinglePixelPackedSampleModel;
import java.util.Vector;
public class GetSamplesTest {
public static int width = 100 ;
public static int height = 100 ;
public static int dataType = DataBuffer.TYPE_BYTE;
public static int numBands = 4 ;
public static void main(String[] args) {
Vector<Class <? extends SampleModel>> classes = new Vector<Class <? extends SampleModel>>();
classes.add(ComponentSampleModel.class );
classes.add(MultiPixelPackedSampleModel.class );
classes.add(SinglePixelPackedSampleModel.class );
classes.add(BandedSampleModel.class );
classes.add(PixelInterleavedSampleModel.class );
for (Class <? extends SampleModel> c : classes) {
doTest(c);
}
}
private static void doTest(Class <? extends SampleModel> c) {
System.out.println("Test for: " + c.getName());
SampleModel sm = createSampleModel(c);
DataBuffer db = sm.createDataBuffer();
int [] iArray = new int [ width * height + numBands];
float [] fArray = new float [ width * height + numBands];
double [] dArray = new double [ width * height + numBands];
boolean iOk = false ;
boolean fOk = false ;
boolean dOk = false ;
try {
sm.getSamples(Integer.MAX_VALUE, 0 , 1 , 1 , 0 , iArray, db);
sm.setSamples(Integer.MAX_VALUE, 0 , 1 , 1 , 0 , iArray, db);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage());
iOk = true ;
}
try {
sm.getSamples(Integer.MAX_VALUE, 0 , 1 , 1 , 0 , fArray, db);
sm.setSamples(Integer.MAX_VALUE, 0 , 1 , 1 , 0 , fArray, db);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage());
fOk = true ;
}
try {
sm.getSamples(0 , Integer.MAX_VALUE, 1 , 1 , 0 , dArray, db);
sm.setSamples(0 , Integer.MAX_VALUE, 1 , 1 , 0 , dArray, db);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage());
dOk = true ;
}
if (!iOk || !fOk || !dOk) {
throw new RuntimeException("Test for " + c.getSimpleName() +
" failed: iOk=" + iOk + "; fOk=" + fOk + "; dOk=" + dOk);
}
}
private static SampleModel createSampleModel(Class <? extends SampleModel> cls) {
SampleModel res = null ;
if (cls == ComponentSampleModel.class ) {
res = new ComponentSampleModel(dataType, width, height, 4 , width * 4 , new int [] { 0 , 1 , 2 , 3 } );
} else if (cls == MultiPixelPackedSampleModel.class ) {
res = new MultiPixelPackedSampleModel(dataType, width, height, 4 );
} else if (cls == SinglePixelPackedSampleModel.class ) {
res = new SinglePixelPackedSampleModel(dataType, width, height,
new int []{ 0 xff000000, 0 x00ff0000, 0 x0000ff00, 0 x000000ff });
} else if (cls == BandedSampleModel.class ) {
res = new BandedSampleModel(dataType, width, height, numBands);
} else if (cls == PixelInterleavedSampleModel.class ) {
res = new PixelInterleavedSampleModel(dataType, width, height, 4 , width * 4 , new int [] { 0 , 1 , 2 , 3 });
} else {
throw new RuntimeException("Unknown class " + cls);
}
return res;
}
}
Messung V0.5 in Prozent C=99 H=99 G=98
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-10-11)
¤
*© Formatika GbR, Deutschland