On 13.09.2020 11:35, michael michaud wrote:
> **peppe's geotiff** : this is a float32 monoband raster. I could only read it
> with Sextant Raster and with Commons Imaging (strange psychedelic apperance
> with Commons Imaging though). Other readers through exception (IOOBE) while
> reading, not while loading. No stacktrace in the log file about the error.
> Attached, an document with the characteristics of each image and the
> success/failure with each driver.
an observation on my part is that the new OSS JAI TIFF is able to decode
'peppe's geotiff' properly when used by Sextante Raster, which actually only
fetches the image buffer.
when opened with ReferenceImage which applies an elaborate RenderedOP (to
position, rotate, scale the image in realtime) this error is thrown.
com.vividsolutions.jump.workbench.ui.WorkbenchFrame.warnUser(WorkbenchFrame.java:1318)
com.vividsolutions.jump.workbench.imagery.ReferencedImageException:
java.lang.ArrayIndexOutOfBoundsException: 94829144
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.paint(GeoImage.java:293)
at
com.vividsolutions.jump.workbench.imagery.ReferencedImageStyle.paint(ReferencedImageStyle.java:61)
at
com.vividsolutions.jump.workbench.ui.renderer.SimpleFeatureCollectionRenderer.paint(SimpleFeatureCollectionRenderer.java:44)
SNIP
Caused by: java.lang.ArrayIndexOutOfBoundsException: 94829144
at
java.awt.image.ComponentColorModel.getRGBComponent(ComponentColorModel.java:903)
at
java.awt.image.ComponentColorModel.getRed(ComponentColorModel.java:944)
at
java.awt.image.ComponentColorModel.getRGB(ComponentColorModel.java:1135)
at sun.java2d.loops.OpaqueCopyAnyToArgb.Blit(CustomComponent.java:145)
at
sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:560)
at
sun.java2d.loops.GraphicsPrimitive.convertFrom(GraphicsPrimitive.java:541)
at sun.java2d.loops.MaskBlit$General.MaskBlit(MaskBlit.java:189)
at sun.java2d.loops.Blit$GeneralMaskBlit.Blit(Blit.java:204)
at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:959)
at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:577)
at sun.java2d.pipe.DrawImage.transformImage(DrawImage.java:161)
at sun.java2d.pipe.DrawImage.transformImage(DrawImage.java:1085)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3463)
at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2663)
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.draw(GeoImage.java:313)
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.paint(GeoImage.java:123)
... 57 more
which seems to be connected to transparency. uncommenting that temporarily,
then throws
com.vividsolutions.jump.workbench.imagery.ReferencedImageException:
java.awt.image.RasterFormatException: (parentX + width) is outside raster
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.paint(GeoImage.java:293)
at
com.vividsolutions.jump.workbench.imagery.ReferencedImageStyle.paint(ReferencedImageStyle.java:61)
at
com.vividsolutions.jump.workbench.ui.renderer.SimpleFeatureCollectionRenderer.paint(SimpleFeatureCollectionRenderer.java:44)
at
com.vividsolutions.jump.workbench.ui.renderer.SimpleFeatureCollectionRenderer.paint(SimpleFeatureCollectionRenderer.java:62)
at
com.vividsolutions.jump.workbench.ui.renderer.SimpleRenderer.copyTo(SimpleRenderer.java:72)
at
com.vividsolutions.jump.workbench.ui.renderer.FeatureCollectionRenderer.copyTo(FeatureCollectionRenderer.java:51)
at
com.vividsolutions.jump.workbench.ui.renderer.LayerRenderer.copyTo(LayerRenderer.java:94)
at
com.vividsolutions.jump.workbench.ui.renderer.RenderingManager.copyTo(RenderingManager.java:362)
at
com.vividsolutions.jump.workbench.ui.LayerViewPanel.paintComponent(LayerViewPanel.java:548)
at javax.swing.JComponent.paint(JComponent.java:1056)
SNIP
Caused by: java.awt.image.RasterFormatException: (parentX + width) is outside
raster
at
java.awt.image.WritableRaster.createWritableChild(WritableRaster.java:228)
at
sun.java2d.SunGraphics2D.drawTranslatedRenderedImage(SunGraphics2D.java:2848)
at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2707)
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.draw(GeoImage.java:313)
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.paint(GeoImage.java:290)
... 67 more
so it seems we have to bugs here. one connected to transparency rendering and
the other to translating it's position.
---
** [bugs:#498] Most GeoTIFF drivers fail with a simple GeoTIFF image**
**Status:** open
**Milestone:** OJ_future
**Created:** Sun Aug 30, 2020 08:02 AM UTC by michael michaud
**Last Updated:** Sun Sep 13, 2020 09:35 AM UTC
**Owner:** nobody
**Attachments:**
-
[small_world.tif](https://sourceforge.net/p/jump-pilot/bugs/498/attachment/small_world.tif)
(240.6 kB; image/tiff)
I often have a bad experience trying to read simple geotiff. To have a more
objective view of the situation, I get a very simple image from the test
directory of GDAL library and tested it against all our drivers.
Image is attached. Here are its main characteristics (I think they are very
common one) :
small_world.tif
size : 400 x 200
Coordinate System : wgs84 (4326)
Metadata : AREA_OR_POINT=AREA
Image Structure Metadata : INTERLEAVE=BAND
3 bands, Block=400x20, Type=Byte, ColorInterp=RGB
I tried to import it with all the image drivers we propose (8 from Open File +
ImageRaster Sextante). 3 drivers only could import the image. All others fail
throughing a rough java exception. Image Raster don't fail immediately, but it
does not display the image and throws NPE if one try to get more information.
List of success/failures and exceptions thrown
Referenced Image (ImageIO[ext],JAI) : OK
ImageIO TIFF Image Reader version 1.0 : OK
ImageIO TIFF Image Reader version 1.1 : OK
Standard TIFF Image Reader
java.lang.IllegalAccessException: class
com.vividsolutions.jump.workbench.imagery.ImageryLayerDataset cannot access
class com.sun.imageio.plugins.tiff.TIFFImageReaderSpi (in module java.desktop)
because module java.desktop does not export com.sun.imageio.plugins.tiff to
unnamed module @12405818
at
java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
at
java.base/jdk.internal.reflect.Reflection.ensureMemberAccess(Reflection.java:99)
at java.base/java.lang.Class.newInstance(Class.java:579)
at
com.vividsolutions.jump.workbench.imagery.ImageryLayerDataset.createFeatureFactory(ImageryLayerDataset.java:236)
at
com.vividsolutions.jump.workbench.imagery.ImageryLayerDataset.attachImage(ImageryLayerDataset.java:117)
Referenced Image (JAI TIF)
java.lang.NullPointerException java.lang.NullPointerException at
com.sun.media.jai.util.SunCachedTile.<init>(SunCachedTile.java:80)
at com.sun.media.jai.util.SunTileCache.add(SunTileCache.java:257)
at javax.media.jai.OpImage.addTileToCache(OpImage.java:1087)
at javax.media.jai.OpImage.getTile(OpImage.java:1142)
at javax.media.jai.PlanarImage.getData(PlanarImage.java:2085)
at
javax.media.jai.RenderedImageAdapter.getData(RenderedImageAdapter.java:158)
at javax.media.jai.ScaleOpImage.computeTile(ScaleOpImage.java:1099)
at
com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
at javax.media.jai.OpImage.getTile(OpImage.java:1129)
at com.sun.media.jai.opimage.CropOpImage.getTile(CropOpImage.java:122)
at
com.sun.media.jai.opimage.TranslateIntOpImage.getTile(TranslateIntOpImage.java:132)
at javax.media.jai.PlanarImage.copyData(PlanarImage.java:2343)
at javax.media.jai.RenderedOp.copyData(RenderedOp.java:2299)
at
javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2525)
at
javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2546)
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.paint(GeoImage.java:285)
at
com.vividsolutions.jump.workbench.imagery.ReferencedImageStyle.paint(ReferencedImageStyle.java:61)
Referenced Image (JAI TIF) : same error
Buffered Image (common) :
com.vividsolutions.jump.workbench.imagery.ReferencedImageException:
java.lang.ArrayIndexOutOfBoundsException: Index 8000 out of bounds for length
8000
at
com.vividsolutions.jump.workbench.imagery.graphic.CommonsImage.initImage(CommonsImage.java:112)
at
com.vividsolutions.jump.workbench.imagery.graphic.AbstractGraphicImage.computeEnvelope(AbstractGraphicImage.java:122)
at
com.vividsolutions.jump.workbench.imagery.graphic.AbstractGraphicImage.getEnvelope(AbstractGraphicImage.java:114)
at
com.vividsolutions.jump.workbench.imagery.ImageryLayerDataset.attachImage(ImageryLayerDataset.java:125)
at
com.vividsolutions.jump.workbench.imagery.ImageryLayerDataset.attachImage(ImageryLayerDataset.java:106)
at
com.vividsolutions.jump.workbench.imagery.ReferencedImageFactoryFileLayerLoader.createImageFeature(ReferencedImageFactoryFileLayerLoader.java:199)
at
com.vividsolutions.jump.workbench.imagery.ReferencedImageFactoryFileLayerLoader.open(ReferencedImageFactoryFileLayerLoader.java:102)
at
org.openjump.core.ui.plugin.file.open.OpenFileWizard.run(OpenFileWizard.java:164)
GeoTIFF plus (JAI) :
java.lang.NullPointerException java.lang.NullPointerException at
com.sun.media.jai.util.SunCachedTile.<init>(SunCachedTile.java:80)
at com.sun.media.jai.util.SunTileCache.add(SunTileCache.java:257)
at javax.media.jai.OpImage.addTileToCache(OpImage.java:1087)
at javax.media.jai.OpImage.getTile(OpImage.java:1142)
at javax.media.jai.PlanarImage.getData(PlanarImage.java:2085)
at
javax.media.jai.RenderedImageAdapter.getData(RenderedImageAdapter.java:158)
at javax.media.jai.ScaleOpImage.computeTile(ScaleOpImage.java:1099)
at
com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
at javax.media.jai.OpImage.getTile(OpImage.java:1129)
at com.sun.media.jai.opimage.CropOpImage.getTile(CropOpImage.java:122)
at
com.sun.media.jai.opimage.TranslateIntOpImage.getTile(TranslateIntOpImage.java:132)
at javax.media.jai.PlanarImage.copyData(PlanarImage.java:2343)
at javax.media.jai.RenderedOp.copyData(RenderedOp.java:2299)
at
javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2525)
at
javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2546)
at
com.vividsolutions.jump.workbench.imagery.geoimg.GeoImage.paint(GeoImage.java:285)
at
com.vividsolutions.jump.workbench.imagery.ReferencedImageStyle.paint(ReferencedImageStyle.java:61)
Image Raster (Sextante) : no exception but does not display
NPE Exception comes if one click on layer properties
java.lang.NullPointerException
at com.sun.media.jai.util.SunCachedTile.<init>(SunCachedTile.java:80)
at com.sun.media.jai.util.SunTileCache.add(SunTileCache.java:257)
at javax.media.jai.OpImage.addTileToCache(OpImage.java:1087)
at javax.media.jai.OpImage.getTile(OpImage.java:1142)
at javax.media.jai.PlanarImage.copyData(PlanarImage.java:2343)
at
javax.media.jai.RenderedImageAdapter.copyData(RenderedImageAdapter.java:163)
at javax.media.jai.RenderedOp.copyData(RenderedOp.java:2299)
at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2525)
at
org.openjump.core.rasterimage.RasterImageIO.loadRasterData(RasterImageIO.java:202)
at
org.openjump.core.rasterimage.RasterImageLayer.getRasterData(RasterImageLayer.java:1505)
at
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.setInfo(RasterImageLayerPropertiesPlugIn.java:444)
at
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.infoText(RasterImageLayerPropertiesPlugIn.java:248)
at
org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.execute(RasterImageLayerPropertiesPlugIn.java:363)
---
Sent from sourceforge.net because jump-pilot-devel@lists.sourceforge.net is
subscribed to https://sourceforge.net/p/jump-pilot/bugs/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/jump-pilot/admin/bugs/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel