int numXTiles = image.getNumXTiles(); int numYTiles = image.getNumYTiles();
int numXTiles = image.getNumXTiles(); int numYTiles = image.getNumYTiles();
public void testGetTileIndices() { TiledImage image = createImage(); assertEquals(3, image.getNumXTiles()); assertEquals(4, image.getNumYTiles()); Point[] indices = FileTileCache.getTileIndices(image); assertNotNull(indices); Point[] expectedIndices = { new Point(0, 0), new Point(1, 0), new Point(2, 0), new Point(0, 1), new Point(1, 1), new Point(2, 1), new Point(0, 2), new Point(1, 2), new Point(2, 2), new Point(0, 3), new Point(1, 3), new Point(2, 3), }; assertEquals(expectedIndices.length, indices.length); for (int i = 0; i < expectedIndices.length; i++) { assertEquals("i=" + i, expectedIndices[i], indices[i]); } }
int numXTiles = image.getNumXTiles(); int numYTiles = image.getNumYTiles();
/** * Takes the 4-band ARGB image that we have been drawing into and * converts it to a single-band int image. */ private void flattenImageToInt() { int numXTiles = image.getNumXTiles(); int numYTiles = image.getNumYTiles(); SampleModel sm = RasterFactory.createPixelInterleavedSampleModel( DataBuffer.TYPE_INT, image.getWidth(), image.getHeight(), 1); TiledImage destImage = new TiledImage(0, 0, image.getWidth(), image.getHeight(), 0, 0, sm, new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), false, false, Transparency.OPAQUE, DataBuffer.TYPE_INT)); for (int yt = 0; yt < numYTiles; yt++) { for (int xt = 0; xt < numXTiles; xt++) { Raster srcTile = image.getTile(xt, yt); WritableRaster destTile = destImage.getWritableTile(xt, yt); int[] data = new int[srcTile.getDataBuffer().getSize()]; srcTile.getDataElements(srcTile.getMinX(), srcTile.getMinY(), srcTile.getWidth(), srcTile.getHeight(), data); Rectangle bounds = destTile.getBounds(); destTile.setPixels(bounds.x, bounds.y, bounds.width, bounds.height, data); destImage.releaseWritableTile(xt, yt); } } image = destImage; }