IRI.Maptor.Infrastructure.GdiPlus
Bridges GDI+/System.Drawing with the Maptor spatial stack — georeferenced raster data sources (worldfile-based), EXIF geotag reading/writing, and digital image processing utilities used by the Maptor desktop applications.
Installation
dotnet add package IRI.Maptor.Infrastructure.GdiPlus
Requires Windows (uses System.Drawing / GDI+).
Features
GeoRasterFileDataSource— raster data source for worldfile-georeferenced imagesClusteredGeoTaggedImageSource— data source for clustered sets of geo-tagged imagesWorldfileManager/WorldfilePyramid— read/write ESRI worldfiles and build worldfile-based tile pyramidsImageHelper— EXIF geotag read/write (GetLatitude,GetLongitude,GetAltitude,SaveGeoTagInfo), bitmap-matrix conversion, image differencing and confusion-matrix comparison, bitmap overlayDoubleBitmap— high-precision pixel access over GDI+ bitmaps- Pixel value types (
ArgbValues,ByteArgbValues,RgbValues,ByteRgbValues) andConversionhelpers between images and numeric arrays ImageMatrix— matrix representation of raster data for numerical processing- Spatial-domain enhancement:
GaussianConvolution,RadiometricEnhancement,GeometricEnhancement - SIFT image matching (
ScaleInvariantFeatureTransform,SiftImageMatching) - Remote sensing: principal component transformation
Usage
using IRI.Maptor.Infrastructure.GdiPlus.Helpers;
using IRI.Maptor.Infrastructure.GdiPlus.WorldfileFormat;
// load a worldfile-georeferenced image
var geoImage = await WorldfileManager.ReadWorldfileAsync(@"c:\data\map.png", srid: 4326);
// read the EXIF geotag of a photo
using var bitmap = new System.Drawing.Bitmap(@"c:\photos\p1.jpg");
double? latitude = ImageHelper.GetLatitude(bitmap);
double? longitude = ImageHelper.GetLongitude(bitmap);
Limitations
- Windows only (
System.Drawing.Common/ GDI+). - Georeferencing is worldfile-based; embedded GeoTIFF tags are not read.
NuGet package · Report issues · Back to IRI.Maptor.Infrastructure