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

Reply via email to