/** * Save a raster to a stream. * * @param raster * @param out * @param options * map with options for the raster writer * @throws IOException */ public static void saveRasterToStream( AbstractRaster raster, OutputStream out, RasterIOOptions options ) throws IOException { RasterWriter writer = getRasterWriter( raster, options ); if ( writer == null ) { log.error( "couldn't find raster writer for stream" ); throw new IOException( "couldn't find raster writer" ); } writer.write( raster, out, options ); }
private static RasterWriter getRasterWriter( AbstractRaster raster, RasterIOOptions options ) { for ( RasterIOProvider writer : getRasterIOLoader() ) { String format = options.get( RasterIOOptions.OPT_FORMAT ); RasterWriter possibleWriter = writer.getRasterWriter( format ); // TODO if ( possibleWriter != null && possibleWriter.canWrite( raster, options ) ) { return possibleWriter; } } return null; }
/** * Save a raster to a file. * * @param raster * @param filename * @param options * map with options for the raster writer * @throws IOException */ public static void saveRasterToFile( AbstractRaster raster, File filename, RasterIOOptions options ) throws IOException { RasterIOOptions opts = new RasterIOOptions(); opts.copyOf( options ); if ( !opts.contains( RasterIOOptions.OPT_FORMAT ) ) { String format = FileUtils.getFileExtension( filename ); opts.add( RasterIOOptions.OPT_FORMAT, format ); } RasterWriter writer = getRasterWriter( raster, opts ); if ( writer == null ) { log.error( "couldn't find raster writer for " + filename ); throw new IOException( "couldn't find raster writer" ); } writer.write( raster, filename, options ); }