GeoTools

OSGeo

Table Of Contents

Previous topic

GTOPO30 Plugin

Next topic

ImageIO-EXT GDAL Plugin

This Page

Image Plugin

The image module in the plugin group provides access to the ‘world plus image’ file formats.

This is the quickest way to get a GIF or JEPG onto a map display - add a small text file along side the image defining the image’s extend and use this plugin.

References

Maven:

<dependency>
  <groupId>org.geotools</groupId>
  <artifactId>gt-image</artifactId>
  <version>${geotools.version}</version>
</dependency>

Example

The WorldImageReader allows access to image data through the GridFormatFinder. This supports raster images with an associated world file.:

File file = new File("test.jpg");

AbstractGridFormat format = GridFormatFinder.findFormat( file );
GridCoverage2DReader reader = format.getReader( file );

World files have the same name as the image (different file extension) and contain just enough information to convert pixel coordinates to real world coordinates. They do not store any coordinate reference system information for the coordinates.

The gt-image plugin depends on Java to read the image file; so depending on how you have JAI / Image IO configured the following should be supported:

Image Format Image Format Extension World File Extension
JPEG file.jpg or file.jpeg file.jgw or file.wld
TIFF file.tif or file.tiff file.tfw or file.wld
PNG file.png file.pgw or file.wld
GIF file.gif file.gfw or file.wld

World File

A world file is a small text file that says where the corners of the image is. The extension of a world file is the first and last letters of the image extension with “w” appended at the end. The coordinates are in the units of the projections, so -180,180 -90,90 for lat/long.

If your image is not in lat/long you will have to include a .prj file, which is a text file with the WKT definition of the coordinate system that should be used.

Example contents of a world file are as follows:

Line Example Definition
1 0.0359281435 Horizontal scale for a pixel
2 0.0000000000 Rotation for row, usually zero
3 0.0000000000 Rotation for column, usually zero
4 -0.0359281437 Vertical scale for pixel, usually negative as rasters count down from the upper left corner
5 -179.9820349282 Translation, usually “easting” location of the upper left pixel (ie column 0)
6 89.9820359281 Translation, usually “northing” location of the upper left pixel (ie row 0)

The Translation information can be thought of as the location of the upper left pixel, this location is provided in the units of the projections being used:

  • For lat/long this location should be in the range -180,180 -90,90
  • If your image is not in lat/long you will have to include a .prj file, which is a text file with the WKT definition of the coordinate system that should be used.

Projection File

A projection file (prj) is WKT representation of the projection the image is in:

image.prj:

GEOGCS["GCS_WGS_1984", DATUM["WGS_1984", SPHEROID["WGS_1984",6378137,298.257223563]],
PRIMEM["Greenwich",0], UNIT["Degree",0.017453292519943295]]

JPEG Example

If your image is world.jpg then you need a world.jgw file and optionally a world.prj file.

An example world.jgw:

0.0359281435
0.0000000000
0.0000000000
-0.0359281437
-179.9820349282
89.9820359281

An example world.prj is:

GEOGCS["GCS_WGS_1984", DATUM["WGS_1984", SPHEROID["WGS_1984",6378137,298.257223563]],
PRIMEM["Greenwich",0], UNIT["Degree",0.017453292519943295]]