Revision: 6391
          http://sourceforge.net/p/jump-pilot/code/6391
Author:   ma15569
Date:     2020-08-27 08:07:43 +0000 (Thu, 27 Aug 2020)
Log Message:
-----------
Workaround to read color depth and DPI from Aster dem files. Previous methods 
(based on JAI) seem to fail with 32DPI/ 4bpp tiff files

Modified Paths:
--------------
    
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java
===================================================================
--- 
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java
     2020-08-26 16:02:28 UTC (rev 6390)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/raster/RasterImageLayerPropertiesPlugIn.java
     2020-08-27 08:07:43 UTC (rev 6391)
@@ -4,6 +4,7 @@
 import java.awt.Dimension;
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
+import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
 import java.awt.image.DataBuffer;
 import java.awt.image.Raster;
@@ -16,7 +17,7 @@
 import java.util.Hashtable;
 import java.util.Locale;
 
-import javax.media.jai.PlanarImage;
+//import javax.media.jai.PlanarImage;
 import javax.swing.BorderFactory;
 import javax.swing.Box;
 import javax.swing.Icon;
@@ -442,9 +443,10 @@
         raster_bands = df.format(rLayer.getNumBands());// Get raster number of
                                                        // bands
         Raster raster = rLayer.getRasterData(null);
+        BufferedImage bImage = rLayer.getImage();
         raster_datatype = getDataType(raster); // Get raster data type
-        raster_colordepth = getColorDepth(raster); // Get raster color depth
-        raster_dpi = getDPI(raster); // Get raster DPI
+        raster_colordepth = getColorDepth(bImage); // Get raster color depth
+        raster_dpi = getDPI(bImage); // Get raster DPI
         extent = rLayer.getWholeImageEnvelope(); // Get Envelope
         extent_cellSizeX = df.format(cellSizeX(raster, extent));// Get X Cell
                                                                 // size
@@ -616,22 +618,33 @@
     /*
      * Gets color depth
      */
-    public String getColorDepth(Raster r) throws IOException {
+   /* public String getColorDepth(Raster r) throws IOException {
         SampleModel sm = r.getSampleModel();
         ColorModel cm = PlanarImage.createColorModel(sm);
         int colordepth = cm.getNumComponents();
         return String.valueOf(colordepth) + " bpp";
-    }
+    }*/
+    public String getColorDepth(BufferedImage r) throws IOException {
 
+               ColorModel cm = r.getColorModel();
+               int colordepth = cm.getNumComponents();
+               return String.valueOf(colordepth) + " bpp";
+       }
+
     /*
      * Gets Dots per Inch (DPI)
      */
-    public String getDPI(Raster r) throws IOException {
+  /*  public String getDPI(Raster r) throws IOException {
         SampleModel sm = r.getSampleModel();
         ColorModel cm = PlanarImage.createColorModel(sm);
         return String.valueOf(cm.getPixelSize());
-    }
+    }*/
+    public String getDPI(BufferedImage r) throws IOException {
 
+               ColorModel cm = r.getColorModel();
+               return String.valueOf(cm.getPixelSize());
+       }
+
     /*
      * Gets cell size
      */



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to