Skip to content

Tools & Resources

A curated list of tools, documentation, and libraries for working with Garmin IMG files.

Tools

Map Creation

Tool Type Description
mkgmap CLI (Java) Converts OpenStreetMap data to Garmin vector IMG. The definitive open-source vector IMG writer.
cGPSmapper CLI Compiles Polish (.mp) format files to Garmin vector IMG. Freeware for personal use.
GPSMapEdit GUI Commercial map editor. Exports to cGPSmapper format (.mp).
splitter CLI (Java) Splits large OSM datasets into tiles for mkgmap.

Map Inspection

Tool Type Description
GMapTool GUI/CLI IMG file inspection, splitting, and merging. The primary tool for analyzing IMG structure.
GPXSee Desktop (C++/Qt) GPS data viewer with full Garmin IMG parser. Useful reference for understanding how devices parse raster data.
cartoload analyze CLI Built-in IMG inspection and comparison. See Analyze IMG files.

Tile Download

Tool Type Description
Mobile Atlas Creator (MOBAC) GUI (Java) Downloads map tiles from online sources. Exports to Garmin Custom Maps (KMZ), not IMG directly.

Format Documentation

There is no official public specification for the Garmin IMG format. All documentation is reverse-engineered.

Comprehensive Specifications

Document Author Coverage
Garmin IMG Format (PDF) Herbert Oppmann Authoritative reverse-engineered spec for container and subfile formats. The most up-to-date reference.
IMG Format Specification 1.0 John Mechalas (2005) The most comprehensive vector IMG specification. Complete header fields, FAT structure, subfile formats.
Exploring Garmin's IMG Format N. Willink (2015) Practical guide to parsing vector IMG internals. Corrects several errors in the Mechalas spec.

Community Resources

Reference Implementations

Project Language Description
mkgmap Java Reference implementation for IMG writing. Key packages: imgfmt, building.
GPXSee C++/Qt Reference IMG parser. Key files: src/map/IMG/rgnfile.cpp, trefile.cpp, lblfile.cpp.

Device Compatibility

Device type Raster IMG Vector IMG JNX (BirdsEye) KMZ (Custom Maps)
Fenix watches (6+) Yes Yes No No
Handheld GPS (GPSMap, Montana, Oregon) Yes Yes Yes Yes (100 tile limit)
Automotive (Drive, DriveSmart) Limited Yes No No

Alternative Raster Formats

JNX (BirdsEye)

Simpler raster format with JPEG tiles and metadata. Better documented than raster IMG. Supported on handheld GPS devices but not on Garmin watches.

KMZ (Garmin Custom Maps)

ZIP archive with JPEG tiles + KML metadata. Simple to create. Limited to 100 tiles per file. Not suitable for large-scale maps.

Key Differences: Raster vs Vector IMG

Raster Vector
Content Pre-rendered JPEG tile imagery Points, polylines, polygons
Rendering Device displays JPEG images Device renders from geometry data
Search/routing Limited or none Full address search, turn-by-turn routing
Tool support Very limited (no open-source writer existed before cartoload) Extensive (mkgmap, cGPSmapper)
File size Large (imagery) Compact

Garmin's professional maps can combine both raster and vector data in a single IMG file — raster background imagery with vector overlays for roads, POIs, and labels.