Skip to content

geosolutions-it/imageio-ext

Repository files navigation

The ImageIO-Ext Project

GeoSolutions Rocks!

The ImageIO-Ext is an Open Source project that provides extensions, fixes and improvements for the standard Oracle Java Image I/O project such as:

  1. Support for the GDAL I/O library
  2. Support for reading/writing JPEG2000 files with Kakadu
  3. Improved support for reading/writing tiff files
  4. A Reader/Writer for JPEG images based on the libjpeg-turbo open source high performance library. More info can be found here
  5. A NITF plugin based on NITRO. More info can be found here
  6. A new PNG Writer with improved performances. More informations can be found here.

The ImageIO library provides support for encoding/decoding raster formats in Java. Some useful documentation on ImageIO can be found here.

See the documentation below for more information on the ImageIO-Ext project.

Releases and Downloads

Current stable release is 1.3.2. Check this page for additional information on how to download artifacts and binaries.

Getting Support

Mailing List

We have created two public mailing lists for ImageIO-Ext one for Developers and one for Users, you can find their homepages here below:

Contributing

We welcome contributions in any form:

  • pull requests for new features
  • pull requests for bug fixes
  • pull requests for documentation
  • funding for any combination of the above

Working with ImageIO-Ext

Here below you can find links with useful information for working with ImageIO-Ext.

Java 17 Compatibility

When using ImageIO-Ext with Java 17, you need to add the following JVM arguments to access internal Java modules that the library requires:

--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.desktop/java.awt.image=ALL-UNNAMED
--add-opens java.desktop/javax.imageio.stream=ALL-UNNAMED
--add-opens java.desktop/javax.imageio=ALL-UNNAMED
--add-exports java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED
--add-exports java.desktop/com.sun.imageio.plugins.png=ALL-UNNAMED

Example Usage

Running your application:

java --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.util=ALL-UNNAMED \
     --add-opens java.desktop/java.awt.image=ALL-UNNAMED \
     --add-opens java.desktop/javax.imageio.stream=ALL-UNNAMED \
     --add-opens java.desktop/javax.imageio=ALL-UNNAMED \
     --add-exports java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED \
     --add-exports java.desktop/com.sun.imageio.plugins.png=ALL-UNNAMED \
     -cp your-classpath YourMainClass

Running tests with Maven:

The project automatically handles these JVM arguments when building with Java 9+ through the jdk-9-plus profile in the root POM, so you can simply run:

mvn test

If you need to override or add additional JVM arguments for tests, you can use:

mvn test -Dsurefire.jvm.args="your-additional-args"

These arguments are required because ImageIO-Ext accesses internal Java APIs that are encapsulated by the module system introduced in Java 9+.

Important Notice

In case you want to enable ECW Decode support, it is mandatory you agree with the ECW Eula. Moreover if you want to support ECW Decode in a Server application you need to BUY a license from ERDAS.

License

ImageIO-Ext is released partly under LGPL license partly under the BSD license (namely, derivative work from imageio source code). Refer to the code tree for more information.

Professional Support

ImageIO-EXT has been developed by GeoSolutions as an internal effort to provide extensions, fixes and improvements for the standard Oracle Java Image I/O project

About

Additional plugins and extension for the standard Java ImageIO library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 20