/** * @param column * @param row * @param buffer * @return a newly allocated buffer if the given one was <code>null</code> * @throws IOException */ public ByteBuffer getTileData( int column, int row, ByteBuffer buffer ) throws IOException { if ( buffer == null ) { buffer = allocateTileBuffer( false, false ); } read( column, row, buffer ); return buffer; }
@Override public BufferResult read( RasterRect rect, ByteBuffer buffer ) throws IOException { RasterRect tmpRect = new RasterRect( rect.x + tileRectInGrid.x, rect.y + tileRectInGrid.y, rect.width, rect.height ); BufferResult bufferResult = originalReader.read( tmpRect, buffer ); bufferResult.getResult().clear(); // PixelInterleavedRasterData rd = new PixelInterleavedRasterData( bufferResult.getRect(), // bufferResult.getRect().width, // bufferResult.getRect().height, // new RasterDataInfo( BandType.RGB, // DataType.BYTE, // InterleaveType.PIXEL ) ); // rd.setByteBuffer( bufferResult.getResult() ); // BufferedImage image = RasterFactory.rasterDataToImage( rd ); // ImageIO.write( image, "png", new File( "/tmp/" + tmpRect.toString() + ".png" ) ); // bufferResult.getRect().x -= tileRectInGrid.x; // bufferResult.getRect().y -= tileRectInGrid.y; return bufferResult; }