[JPP-Devel] SVN: [6437] core/trunk/src/org/openjump/core/rasterimage/ RasterImageLayer.java
Revision: 6437 http://sourceforge.net/p/jump-pilot/code/6437 Author: ma15569 Date: 2020-09-08 06:32:33 + (Tue, 08 Sep 2020) Log Message: --- Reverted some changes: removed interpolation that was blurring dems when zoomed, restore getCellValue to original (we lost the ability to read cell value on small_earth.tiff sample but we extend cell value query to AsterDEM - that's what Sextante framework is mostly used) - sorry to copy/paste the whole code Modified Paths: -- core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java === --- core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java 2020-09-07 14:11:23 UTC (rev 6436) +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java 2020-09-08 06:32:33 UTC (rev 6437) @@ -1,1808 +1,1779 @@ -/* - * Created on 03.01.2006 for PIROL - * - * SVN header information: - * $Author: LBST-PF-3\orahn $ - * $Rev: 2509 $ - * $Date: 2006-10-06 12:01:50 +0200 (Fr, 06 Okt 2006) $ - * $Id: RasterImageLayer.java 2509 2006-10-06 10:01:50Z LBST-PF-3\orahn $ - */ -package org.openjump.core.rasterimage; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.AffineTransform; -import java.awt.geom.NoninvertibleTransformException; -import java.awt.geom.Point2D; -import java.awt.image.AffineTransformOp; -import java.awt.image.BufferedImage; -import java.awt.image.ColorModel; -import java.awt.image.IndexColorModel; -import java.awt.image.Raster; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.UUID; - -import org.openjump.core.ccordsys.utils.SRSInfo; -import org.openjump.util.metaData.MetaDataMap; -import org.openjump.util.metaData.ObjectContainingMetaInformation; - -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.Envelope; -import com.vividsolutions.jts.geom.Geometry; -import com.vividsolutions.jts.geom.GeometryFactory; -import com.vividsolutions.jts.geom.Polygon; -import com.vividsolutions.jump.I18N; -import com.vividsolutions.jump.util.Blackboard; -import com.vividsolutions.jump.workbench.Logger; -import com.vividsolutions.jump.workbench.WorkbenchContext; -import com.vividsolutions.jump.workbench.model.AbstractLayerable; -import com.vividsolutions.jump.workbench.model.LayerManager; -import com.vividsolutions.jump.workbench.model.Layerable; -import com.vividsolutions.jump.workbench.plugin.PlugInContext; -import com.vividsolutions.jump.workbench.ui.LayerNameRenderer; -import com.vividsolutions.jump.workbench.ui.LayerViewPanel; -import com.vividsolutions.jump.workbench.ui.Viewport; - -/** - * Layer representing a georeferenced raster image (e.g. an areal photography) in OpenJump. - * - * @author Ole Rahn - * - * FH Osnabrück - University of Applied Sciences Osnabrück, - * Project: PIROL (2006), - * Subproject: Daten- und Wissensmanagement - * - * @version $Rev: 2509 $ - * modified: [sstein]: 16.Feb.2009 changed logger-entries to comments, used frame.warnUser - */ -public final class RasterImageLayer extends AbstractLayerable implements ObjectContainingMetaInformation, Cloneable { - -protected static Blackboard blackboard = null; - -protected final static String BLACKBOARD_KEY_PLUGINCONTEXT = PlugInContext.class.getName(); -protected final static String BLACKBOARD_KEY_WORKBENCHCONTEXT = PlugInContext.class.getName(); - -protected int lastImgProcessingMode = 0; - -protected final static int MODE_NONE = 0; -protected final static int MODE_SCALINGFIRST = 1; -protected final static int MODE_CLIPPINGFIRST = 2; -protected final static int MODE_FASTDISPLAY = 3; - -protected Rectangle imagePart, visibleRect = null; - -protected double oldScaleXImg2Canvas; - -protected int xOffset, yOffset; - -//protected static PersonalLogger logger = new PersonalLogger(DebugUserIds.OLE); - -protected double transparencyLevel = .0f; - - -protected static long availRAM = Runtime.getRuntime().maxMemory(); -protected static double freeRamFactor = 0.5; -protected static double minRamToKeepFree = availRAM * freeRamFactor; -//[sstein 9.Aug.2010] -// The value below is set dynamically based on available memory -// now its 200x200px as min (originally it was 500x500) -//protected static int maxPixelsForFastDisplayMode = 4; -protected static int maxPixelsForFastDisplayMode = 25; - -protected String imageFileName = null; -protected int origImageWidth, origImageHeight; -protected boolean imageSet = false; -protected BufferedImage image = null; -protected int numBands = 0; - -//-- [sstein 2nd Aug 2010] new, since we scale the image now for display -protected
[JPP-Devel] SVN: [6436] core/trunk/src/com/vividsolutions/jump/workbench/imagery/ geoimg/GeoImageFactory.java
Revision: 6436 http://sourceforge.net/p/jump-pilot/code/6436 Author: edso Date: 2020-09-07 14:11:23 + (Mon, 07 Sep 2020) Log Message: --- add some robustness don't fail completely if imageio-ext gdal is missing some debug tracing added Modified Paths: -- core/trunk/src/com/vividsolutions/jump/workbench/imagery/geoimg/GeoImageFactory.java Modified: core/trunk/src/com/vividsolutions/jump/workbench/imagery/geoimg/GeoImageFactory.java === --- core/trunk/src/com/vividsolutions/jump/workbench/imagery/geoimg/GeoImageFactory.java 2020-09-07 14:06:10 UTC (rev 6435) +++ core/trunk/src/com/vividsolutions/jump/workbench/imagery/geoimg/GeoImageFactory.java 2020-09-07 14:11:23 UTC (rev 6436) @@ -46,6 +46,7 @@ import org.geotiff.image.jai.GeoTIFFDescriptor; import com.sun.media.jai.codec.ImageCodec; +import com.vividsolutions.jump.workbench.Logger; import com.vividsolutions.jump.workbench.WorkbenchContext; import com.vividsolutions.jump.workbench.imagery.ReferencedImage; import com.vividsolutions.jump.workbench.imagery.graphic.AbstractGraphicImageFactory; @@ -69,7 +70,8 @@ } public GeoImageFactory() { -// register optional codecs TODO: how to register them more effortlessly? +// register optional codecs TODO: how to register them more effortlessly +try { IIORegistry.getDefaultInstance().registerServiceProvider( new JP2GDALOpenJPEGImageReaderSpi()); IIORegistry.getDefaultInstance().registerServiceProvider( @@ -76,6 +78,9 @@ new JP2GDALEcwImageReaderSpi()); IIORegistry.getDefaultInstance().registerServiceProvider( new JP2GDALJasperImageReaderSpi()); +}catch( NoClassDefFoundError e){ + Logger.error("Can't register JP2GDAL readers.",e); +} // initialize extensions final Iterator iter = IIORegistry @@ -82,6 +87,8 @@ .getDefaultInstance().getServiceProviders(ImageReaderSpi.class, true); for (; iter.hasNext();) { ImageReaderSpi reader = (ImageReaderSpi) iter.next(); + //Logger.trace("GeoImageFactory - Add "+reader.getDescription(Locale.getDefault())+" ext: "+Arrays.toString(reader.getFileSuffixes())); + Logger.trace("GeoImageFactory - Add "+loaderString(reader) + " class:" + reader.getClass().getCanonicalName()); String[] exts = reader.getFileSuffixes(); // this is mainly for the NITF imageio-ext reader, which has one empty ext // supposedly because too much file extensions (?) exist for this format @@ -130,7 +137,7 @@ } public String getDescription() { -return getTypeName() + " " + loaderString(); +return getTypeName() + " " + loaderString(this.loader); } /** @@ -137,7 +144,7 @@ * prepare a proper description of a forced loader * currently "(description, version x.x, vendor)" */ - private String loaderString() { + private String loaderString(Object loader) { // a specified loader if (loader != null) { String loaderString =""; ___ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
Re: [JPP-Devel] SVN: [6432] core/trunk/src/org/openjump/core/rasterimage/ RasterImageIO.java
It should work on OJ 6435 Il lun 7 set 2020, 3:53 PM Giuseppe Aruta ha scritto: > I Will check. Possibile I missed up a line. Thanks > > > Il lun 7 set 2020, 2:19 PM ha scritto: > >> Peppe, >> >> this does not compile on my side. are there changes missing? ..ede >> >> Description ResourcePathLocationType >> band cannot be resolved to a variable RasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem >> col cannot be resolved to a variableRasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem >> rectangle cannot be resolved to a variable RasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 386Java Problem >> renderedOp cannot be resolved RasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 386Java Problem >> renderedOp cannot be resolved to a variable RasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 384Java Problem >> row cannot be resolved to a variableRasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem >> subset cannot be resolved to a variable RasterImageIO.java >> /proj_oj-core/src/org/openjump/core/rasterimage line 330Java Problem >> >> >> On 9/7/2020 9:44, jump-pilot-svn--- via Jump-pilot-devel wrote: >> > Revision: 6432 >> > http://sourceforge.net/p/jump-pilot/code/6432 >> > Author: ma15569 >> > Date: 2020-09-07 07:44:45 + (Mon, 07 Sep 2020) >> > Log Message: >> > --- >> > Optimized code >> > >> > Modified Paths: >> > -- >> > core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java >> > >> > Modified: >> core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java >> > === >> > --- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java >> 2020-09-07 07:40:36 UTC (rev 6431) >> > +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java >> 2020-09-07 07:44:45 UTC (rev 6432) >> > @@ -322,27 +322,13 @@ >> > >> >renderedOp = >> javax.media.jai.JAI.create("fileload", >> > filenameOrURL); >> > - >> > - >> > - return renderedOp.getData(rectangle) >> > + return renderedOp.getData(rectangle) >> > .getSampleDouble(col, row, band); >> > - }else if (filenameOrURL.toLowerCase().endsWith(".tif") >> > + } >> > + else if (filenameOrURL.toLowerCase().endsWith(".tif") >> > || >> filenameOrURL.toLowerCase().endsWith(".tiff")) { >> > - >> > - GeoReferencedRaster geoRaster; >> > - >> > - try { >> > - geoRaster = new GeoReferencedRaster(new >> File(filenameOrURL).toURI().toString()); >> > - renderedOp = geoRaster.getImage(); >> > - } catch (ReferencedImageException e) { >> > - // TODO Auto-generated catch block >> > - renderedOp = JAI.create("fileload", filenameOrURL); >> > - } >> > - >> > - return renderedOp.getData(rectangle) >> > - .getSampleDouble(col, row, band); >> > - >> > - >> > + return TiffUtils.getRenderedOp(new >> File(filenameOrURL)).getAsBufferedImage(subset, null).getData(); >> > + >> > } else if (filenameOrURL.toLowerCase().endsWith(".jpg")) { >> > // PlanarImage pimage; >> > >> > @@ -395,19 +381,11 @@ >> > >> > } else if (filenameOrURL.toLowerCase().endsWith(".tif") >> > || >> filenameOrURL.toLowerCase().endsWith(".tiff")) { >> > - GeoReferencedRaster geoRaster; >> > - RenderedOp renderedOp; >> > - try { >> > - geoRaster = new GeoReferencedRaster(new >> File(filenameOrURL).toURI().toString()); >> > - renderedOp = geoRaster.getImage(); >> > - } catch (ReferencedImageException e) { >> > - // TODO Auto-generated catch block >> > - renderedOp = JAI.create("fileload", filenameOrURL); >> > - } >> > - if (renderedOp != null) { >> > - return new Point(renderedOp.getWidth(), >> renderedOp.getHeight()); >> > - } >> > - >> > + renderedOp= TiffUtils.getRenderedOp(new >> File(filenameOrURL)); >> > + >> > + return renderedOp.getData(rectangle) >> > + .getSampleDouble(col, row, band); >> > + >> > >> > } else if (filenameOrURL.toLowerCase().endsWith(".
[JPP-Devel] SVN: [6435] core/trunk/src/org/openjump/core/rasterimage/ RasterImageIO.java
Revision: 6435 http://sourceforge.net/p/jump-pilot/code/6435 Author: ma15569 Date: 2020-09-07 14:06:10 + (Mon, 07 Sep 2020) Log Message: --- correct error Modified Paths: -- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java === --- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java 2020-09-07 11:46:22 UTC (rev 6434) +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java 2020-09-07 14:06:10 UTC (rev 6435) @@ -327,8 +327,12 @@ } else if (filenameOrURL.toLowerCase().endsWith(".tif") || filenameOrURL.toLowerCase().endsWith(".tiff")) { - return TiffUtils.getRenderedOp(new File(filenameOrURL)).getAsBufferedImage(subset, null).getData(); - + renderedOp= TiffUtils.getRenderedOp(new File(filenameOrURL)); + + return renderedOp.getData(rectangle) + .getSampleDouble(col, row, band); + + } else if (filenameOrURL.toLowerCase().endsWith(".jpg")) { // PlanarImage pimage; @@ -379,13 +383,15 @@ return new Point(pImage.getWidth(), pImage.getHeight()); } - } else if (filenameOrURL.toLowerCase().endsWith(".tif") + }else if (filenameOrURL.toLowerCase().endsWith(".tif") || filenameOrURL.toLowerCase().endsWith(".tiff")) { + RenderedOp renderedOp; renderedOp= TiffUtils.getRenderedOp(new File(filenameOrURL)); - - return renderedOp.getData(rectangle) - .getSampleDouble(col, row, band); - + + if (renderedOp != null) { + return new Point(renderedOp.getWidth(), renderedOp.getHeight()); + } + } else if (filenameOrURL.toLowerCase().endsWith(".flt")) { ___ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
Re: [JPP-Devel] SVN: [6432] core/trunk/src/org/openjump/core/rasterimage/ RasterImageIO.java
I Will check. Possibile I missed up a line. Thanks Il lun 7 set 2020, 2:19 PM ha scritto: > Peppe, > > this does not compile on my side. are there changes missing? ..ede > > Description ResourcePathLocationType > band cannot be resolved to a variable RasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem > col cannot be resolved to a variableRasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem > rectangle cannot be resolved to a variable RasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 386Java Problem > renderedOp cannot be resolved RasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 386Java Problem > renderedOp cannot be resolved to a variable RasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 384Java Problem > row cannot be resolved to a variableRasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem > subset cannot be resolved to a variable RasterImageIO.java > /proj_oj-core/src/org/openjump/core/rasterimage line 330Java Problem > > > On 9/7/2020 9:44, jump-pilot-svn--- via Jump-pilot-devel wrote: > > Revision: 6432 > > http://sourceforge.net/p/jump-pilot/code/6432 > > Author: ma15569 > > Date: 2020-09-07 07:44:45 + (Mon, 07 Sep 2020) > > Log Message: > > --- > > Optimized code > > > > Modified Paths: > > -- > > core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > > > > Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > > === > > --- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > 2020-09-07 07:40:36 UTC (rev 6431) > > +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > 2020-09-07 07:44:45 UTC (rev 6432) > > @@ -322,27 +322,13 @@ > > > >renderedOp = > javax.media.jai.JAI.create("fileload", > > filenameOrURL); > > - > > - > > - return renderedOp.getData(rectangle) > > + return renderedOp.getData(rectangle) > > .getSampleDouble(col, row, band); > > - }else if (filenameOrURL.toLowerCase().endsWith(".tif") > > + } > > + else if (filenameOrURL.toLowerCase().endsWith(".tif") > > || > filenameOrURL.toLowerCase().endsWith(".tiff")) { > > - > > - GeoReferencedRaster geoRaster; > > - > > - try { > > - geoRaster = new GeoReferencedRaster(new > File(filenameOrURL).toURI().toString()); > > - renderedOp = geoRaster.getImage(); > > - } catch (ReferencedImageException e) { > > - // TODO Auto-generated catch block > > - renderedOp = JAI.create("fileload", filenameOrURL); > > - } > > - > > - return renderedOp.getData(rectangle) > > - .getSampleDouble(col, row, band); > > - > > - > > + return TiffUtils.getRenderedOp(new > File(filenameOrURL)).getAsBufferedImage(subset, null).getData(); > > + > > } else if (filenameOrURL.toLowerCase().endsWith(".jpg")) { > > // PlanarImage pimage; > > > > @@ -395,19 +381,11 @@ > > > > } else if (filenameOrURL.toLowerCase().endsWith(".tif") > > || > filenameOrURL.toLowerCase().endsWith(".tiff")) { > > - GeoReferencedRaster geoRaster; > > - RenderedOp renderedOp; > > - try { > > - geoRaster = new GeoReferencedRaster(new > File(filenameOrURL).toURI().toString()); > > - renderedOp = geoRaster.getImage(); > > - } catch (ReferencedImageException e) { > > - // TODO Auto-generated catch block > > - renderedOp = JAI.create("fileload", filenameOrURL); > > - } > > - if (renderedOp != null) { > > - return new Point(renderedOp.getWidth(), > renderedOp.getHeight()); > > - } > > - > > + renderedOp= TiffUtils.getRenderedOp(new > File(filenameOrURL)); > > + > > + return renderedOp.getData(rectangle) > > + .getSampleDouble(col, row, band); > > + > > > > } else if (filenameOrURL.toLowerCase().endsWith(".flt")) { > > > > > > > > > > ___ > > Jump-pilot-devel mailing list > > Jump-pilot-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/list
Re: [JPP-Devel] SVN: [6432] core/trunk/src/org/openjump/core/rasterimage/ RasterImageIO.java
Peppe, this does not compile on my side. are there changes missing? ..ede Description ResourcePathLocationType band cannot be resolved to a variable RasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem col cannot be resolved to a variableRasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem rectangle cannot be resolved to a variable RasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 386Java Problem renderedOp cannot be resolved RasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 386Java Problem renderedOp cannot be resolved to a variable RasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 384Java Problem row cannot be resolved to a variableRasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 387Java Problem subset cannot be resolved to a variable RasterImageIO.java /proj_oj-core/src/org/openjump/core/rasterimage line 330Java Problem On 9/7/2020 9:44, jump-pilot-svn--- via Jump-pilot-devel wrote: > Revision: 6432 > http://sourceforge.net/p/jump-pilot/code/6432 > Author: ma15569 > Date: 2020-09-07 07:44:45 + (Mon, 07 Sep 2020) > Log Message: > --- > Optimized code > > Modified Paths: > -- > core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > > Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > === > --- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > 2020-09-07 07:40:36 UTC (rev 6431) > +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java > 2020-09-07 07:44:45 UTC (rev 6432) > @@ -322,27 +322,13 @@ > >renderedOp = javax.media.jai.JAI.create("fileload", > filenameOrURL); > - > - > - return renderedOp.getData(rectangle) > + return renderedOp.getData(rectangle) > .getSampleDouble(col, row, band); > - }else if (filenameOrURL.toLowerCase().endsWith(".tif") > + } > + else if (filenameOrURL.toLowerCase().endsWith(".tif") > || > filenameOrURL.toLowerCase().endsWith(".tiff")) { > - > - GeoReferencedRaster geoRaster; > - > - try { > - geoRaster = new GeoReferencedRaster(new > File(filenameOrURL).toURI().toString()); > - renderedOp = geoRaster.getImage(); > - } catch (ReferencedImageException e) { > - // TODO Auto-generated catch block > - renderedOp = JAI.create("fileload", filenameOrURL); > - } > - > - return renderedOp.getData(rectangle) > - .getSampleDouble(col, row, band); > - > - > + return TiffUtils.getRenderedOp(new > File(filenameOrURL)).getAsBufferedImage(subset, null).getData(); > + > } else if (filenameOrURL.toLowerCase().endsWith(".jpg")) { > // PlanarImage pimage; > > @@ -395,19 +381,11 @@ > > } else if (filenameOrURL.toLowerCase().endsWith(".tif") > || > filenameOrURL.toLowerCase().endsWith(".tiff")) { > - GeoReferencedRaster geoRaster; > - RenderedOp renderedOp; > - try { > - geoRaster = new GeoReferencedRaster(new > File(filenameOrURL).toURI().toString()); > - renderedOp = geoRaster.getImage(); > - } catch (ReferencedImageException e) { > - // TODO Auto-generated catch block > - renderedOp = JAI.create("fileload", filenameOrURL); > - } > - if (renderedOp != null) { > - return new Point(renderedOp.getWidth(), > renderedOp.getHeight()); > - } > - > + renderedOp= TiffUtils.getRenderedOp(new > File(filenameOrURL)); > + > + return renderedOp.getData(rectangle) > + .getSampleDouble(col, row, band); > + > > } else if (filenameOrURL.toLowerCase().endsWith(".flt")) { > > > > > ___ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ___ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
[JPP-Devel] SVN: [6434] core/trunk/src/org/openjump/core/ui/plugin/style
Revision: 6434 http://sourceforge.net/p/jump-pilot/code/6434 Author: ma15569 Date: 2020-09-07 11:46:22 + (Mon, 07 Sep 2020) Log Message: --- corrected undocumented bug. FileChooser of Save/Load style was freezing OJ whenever it was used more than one time Modified Paths: -- core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java Modified: core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java === --- core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java 2020-09-07 11:08:48 UTC (rev 6433) +++ core/trunk/src/org/openjump/core/ui/plugin/style/LoadStylePlugIn.java 2020-09-07 11:46:22 UTC (rev 6434) @@ -83,7 +83,7 @@ File file; Layer layer; -private final JFCWithEnterAction fc = new JFCWithEnterAction(); +private JFileChooser fc;// = new JFCWithEnterAction(); private final FileNameExtensionFilter filter = new FileNameExtensionFilter( "JUMP layer symbology", "style.xml"); private final FileNameExtensionFilter filter2 = new FileNameExtensionFilter( @@ -95,7 +95,7 @@ @Override public boolean execute(PlugInContext context) throws Exception { layer = context.getSelectedLayer(0); - +fc = new JFCWithEnterAction(); if (PersistentBlackboardPlugIn.get(context.getWorkbenchContext()).get( FILE_CHOOSER_DIRECTORY_KEY) != null) { fc.setCurrentDirectory(new File((String) PersistentBlackboardPlugIn Modified: core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java === --- core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java 2020-09-07 11:08:48 UTC (rev 6433) +++ core/trunk/src/org/openjump/core/ui/plugin/style/SaveStylePlugIn.java 2020-09-07 11:46:22 UTC (rev 6434) @@ -88,7 +88,7 @@ "JUMP layer symbology", "style.xml"); private final FileNameExtensionFilter filter2 = new FileNameExtensionFilter( "Spatial layer descriptor", "sld"); -private final JFCWithEnterAction fc = new GUIUtil.FileChooserWithOverwritePrompting(); +private JFileChooser fc;// = new GUIUtil.FileChooserWithOverwritePrompting(); private static final String FILE_CHOOSER_DIRECTORY_KEY = SaveFileDataSourceQueryChooser.class .getName() + " - FILE CHOOSER DIRECTORY"; @@ -95,7 +95,7 @@ @Override public boolean execute(PlugInContext context) throws Exception { reportNothingToUndoYet(context); - +fc = new GUIUtil.FileChooserWithOverwritePrompting(); layer = context.getSelectedLayer(0); if (PersistentBlackboardPlugIn.get(context.getWorkbenchContext()).get( ___ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
[JPP-Devel] SVN: [6433] core/trunk/src/org/openjump/core/rasterimage/ RasterImageLayer.java
Revision: 6433 http://sourceforge.net/p/jump-pilot/code/6433 Author: ma15569 Date: 2020-09-07 11:08:48 + (Mon, 07 Sep 2020) Log Message: --- reverted changes for DEM files otherwise, if a style is applied, pixel inspection gives back Red value instead of real z value Modified Paths: -- core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java === --- core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java 2020-09-07 07:44:45 UTC (rev 6432) +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageLayer.java 2020-09-07 11:08:48 UTC (rev 6433) @@ -413,13 +413,16 @@ //[Giuseppe Aruta 2020-09-04] small patch to solve //bug 498 "Most GeoTIFF drivers fail with a simple GeoTIFF image" // at least for RasterImageLayer - try { - setImage(stretchImageValuesForDisplay());} - catch (ArrayIndexOutOfBoundsException e){ - //[Giuseppe Aruta 2020-09-04] - //setImage(image); removed as getCellValue seems not working -setImage(getImageForDisplay()); - } + //DEM + if (stats.getBandCount()<3) { +setImage(stretchImageValuesForDisplay()); +} else {//Other images +try { + setImage(stretchImageValuesForDisplay());} + catch (ArrayIndexOutOfBoundsException e){ + setImage(getImageForDisplay()); + } +} //setImage(stretchImageValuesForDisplay()); wasScaledForDisplay = true; @@ -1680,13 +1683,17 @@ int pos = row * origImageWidth + col; double value; -try { - value = imageProcessingStep3.getData().getSampleFloat(col, row, band); - - // imageProcessingStep2.getData().getSampleFloat(col, row, band);//actualRasterData.getSampleDouble(col, row, band); -} catch (ArrayIndexOutOfBoundsException e) { - value = RasterImageIO.readCellValue(imageFileName, col, row, band); -} +if (stats.getBandCount()<3) { +value = RasterImageIO.readCellValue(imageFileName, col, row, band); +} else { + try { + value = imageProcessingStep3.getData().getSampleFloat(col, row, band); + + // imageProcessingStep2.getData().getSampleFloat(col, row, band);//actualRasterData.getSampleDouble(col, row, band); +} catch (ArrayIndexOutOfBoundsException e) { + value = RasterImageIO.readCellValue(imageFileName, col, row, band); +} +} return value; } ___ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
[JPP-Devel] SVN: [6432] core/trunk/src/org/openjump/core/rasterimage/ RasterImageIO.java
Revision: 6432 http://sourceforge.net/p/jump-pilot/code/6432 Author: ma15569 Date: 2020-09-07 07:44:45 + (Mon, 07 Sep 2020) Log Message: --- Optimized code Modified Paths: -- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java Modified: core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java === --- core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java 2020-09-07 07:40:36 UTC (rev 6431) +++ core/trunk/src/org/openjump/core/rasterimage/RasterImageIO.java 2020-09-07 07:44:45 UTC (rev 6432) @@ -322,27 +322,13 @@ renderedOp = javax.media.jai.JAI.create("fileload", filenameOrURL); - - - return renderedOp.getData(rectangle) + return renderedOp.getData(rectangle) .getSampleDouble(col, row, band); - }else if (filenameOrURL.toLowerCase().endsWith(".tif") + } + else if (filenameOrURL.toLowerCase().endsWith(".tif") || filenameOrURL.toLowerCase().endsWith(".tiff")) { - - GeoReferencedRaster geoRaster; - - try { - geoRaster = new GeoReferencedRaster(new File(filenameOrURL).toURI().toString()); -renderedOp = geoRaster.getImage(); - } catch (ReferencedImageException e) { - // TODO Auto-generated catch block -renderedOp = JAI.create("fileload", filenameOrURL); - } - - return renderedOp.getData(rectangle) - .getSampleDouble(col, row, band); - - + return TiffUtils.getRenderedOp(new File(filenameOrURL)).getAsBufferedImage(subset, null).getData(); + } else if (filenameOrURL.toLowerCase().endsWith(".jpg")) { // PlanarImage pimage; @@ -395,19 +381,11 @@ } else if (filenameOrURL.toLowerCase().endsWith(".tif") || filenameOrURL.toLowerCase().endsWith(".tiff")) { - GeoReferencedRaster geoRaster; - RenderedOp renderedOp; - try { - geoRaster = new GeoReferencedRaster(new File(filenameOrURL).toURI().toString()); -renderedOp = geoRaster.getImage(); - } catch (ReferencedImageException e) { - // TODO Auto-generated catch block -renderedOp = JAI.create("fileload", filenameOrURL); - } - if (renderedOp != null) { - return new Point(renderedOp.getWidth(), renderedOp.getHeight()); - } - + renderedOp= TiffUtils.getRenderedOp(new File(filenameOrURL)); + + return renderedOp.getData(rectangle) + .getSampleDouble(col, row, band); + } else if (filenameOrURL.toLowerCase().endsWith(".flt")) { ___ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
[JPP-Devel] SVN: [6431] core/trunk/src/org/openjump/core/rasterimage/TiffUtils.java
Revision: 6431 http://sourceforge.net/p/jump-pilot/code/6431 Author: ma15569 Date: 2020-09-07 07:40:36 + (Mon, 07 Sep 2020) Log Message: --- Optimized code 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-06 21:55:39 UTC (rev 6430) +++ core/trunk/src/org/openjump/core/rasterimage/TiffUtils.java 2020-09-07 07:40:36 UTC (rev 6431) @@ -23,6 +23,7 @@ import javax.imageio.stream.ImageInputStream; import javax.media.jai.JAI; import javax.media.jai.RenderedOp; +import javax.media.jai.util.ImagingListener; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; @@ -336,57 +337,54 @@ }*/ -//[Giuseppe Aruta 2020-02-09] whenever it is possible -// we use ImageIO-ext first to retrive the Image +//[Giuseppe Aruta 2020-07-09] whenever it is possible +// we use JAI Image I/O 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(); + RenderedOp renderedOp = getRenderedOp(tiffFile); + ParameterBlock parameterBlock = new ParameterBlock(); parameterBlock.addSource(renderedOp); parameterBlock.add(xScale); parameterBlock.add(yScale); renderedOp = JAI.create("scale", parameterBlock); -return 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) + + Rectangle rectangle = new Rectangle(col, row, 1, 1); + return getRenderedOp(tiffFile).getData(rectangle) .getSampleDouble(col, row, band); } public static RenderedOp getRenderedOp(File tiffFile) { + //Since JAI error messages are rerouted to OJ log + //I suppress the error message for absence of mediaLib accelerator + System.setProperty("com.sun.media.jai.disableMediaLib", "true"); RenderedOp renderedOp = null; try { + //First try with JAI Image I/O "ImageRead" 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", + //Then with JAI "FileLoad" + //System.setProperty("com.sun.media.jai.disableMediaLib", "true"); + + // rerouted JAI error messages to OJ log here + JAI.getDefaultInstance().setImagingListener(new ImagingListener() { + @Override + public boolean errorOccurred(String msg, Throwable thrown, Object where, + boolean isRetryable) throws RuntimeException { + Logger.error(thrown); + return false; + } + }); +