Revision: 6415 http://sourceforge.net/p/jump-pilot/code/6415 Author: ma15569 Date: 2020-09-02 12:03:05 +0000 (Wed, 02 Sep 2020) Log Message: ----------- Added methods to use, whenever it is possible, ImageIO -ext instead of JAI
Modified Paths: -------------- core/trunk/src/org/openjump/core/rasterimage/TiffUtils.java Modified: core/trunk/src/org/openjump/core/rasterimage/TiffUtils.java =================================================================== --- core/trunk/src/org/openjump/core/rasterimage/TiffUtils.java 2020-09-02 11:59:16 UTC (rev 6414) +++ core/trunk/src/org/openjump/core/rasterimage/TiffUtils.java 2020-09-02 12:03:05 UTC (rev 6415) @@ -3,6 +3,8 @@ import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jump.workbench.Logger; +import com.vividsolutions.jump.workbench.imagery.ReferencedImageException; +import com.vividsolutions.jump.workbench.imagery.geoimg.GeoReferencedRaster; import java.awt.Point; import java.awt.Rectangle; @@ -323,18 +325,71 @@ } - public static RenderedOp readSubsampled(File tiffFile, float xScale, float yScale) { - + /* public static RenderedOp readSubsampled(File tiffFile, float xScale, float yScale) { System.setProperty("com.sun.media.jai.disableMediaLib", "true"); RenderedOp renderedOp = JAI.create("fileload", tiffFile.getAbsolutePath()); ParameterBlock parameterBlock = new ParameterBlock(); parameterBlock.addSource(renderedOp); - parameterBlock.add(xScale); parameterBlock.add(yScale); return JAI.create("scale", parameterBlock); + }*/ + + //[Giuseppe Aruta 2020-02-09] whenever it is possible + // we use ImageIO-ext first to retrive the Image + + public static RenderedOp readSubsampled(File tiffFile, float xScale, float yScale) { + RenderedOp renderedOp = null; + try { + //We first try with gdal/ImageIO-ext + GeoReferencedRaster geoRaster = new GeoReferencedRaster(tiffFile.toURI().toString()); + renderedOp = geoRaster.getImage(); + } catch (ReferencedImageException e) { + //Then we use JAI + System.setProperty("com.sun.media.jai.disableMediaLib", "true"); + renderedOp = JAI.create("fileload", tiffFile.getAbsolutePath()); + + } + ParameterBlock parameterBlock = new ParameterBlock(); + parameterBlock.addSource(renderedOp); + parameterBlock.add(xScale); + parameterBlock.add(yScale); + renderedOp = JAI.create("scale", parameterBlock); + return JAI.create("scale", parameterBlock); + } + + + public static Double readCellValue(File tiffFile, int col, int row, + int band) { + RenderedOp renderedOp = null; + Rectangle rectangle = new Rectangle(col, row, 1, 1); + try { + GeoReferencedRaster geoRaster = new GeoReferencedRaster(tiffFile.toURI().toString()); + renderedOp = geoRaster.getImage(); + } + catch (Exception e) { + System.setProperty("com.sun.media.jai.disableMediaLib", "true"); + renderedOp = javax.media.jai.JAI.create("fileload", + tiffFile.getAbsolutePath()); + } + return renderedOp.getData(rectangle) + .getSampleDouble(col, row, band); + } + + + public static RenderedOp getRenderedOp(File tiffFile) { + RenderedOp renderedOp = null; + try { + GeoReferencedRaster geoRaster = new GeoReferencedRaster(tiffFile.toURI().toString()); + renderedOp = geoRaster.getImage(); + } + catch (Exception e) { + System.setProperty("com.sun.media.jai.disableMediaLib", "true"); + renderedOp = javax.media.jai.JAI.create("fileload", + tiffFile.toURI().toString()); + } + return renderedOp; } - } _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel