b2KIT

Texture Atlas Packer

Pack multiple textures into a single atlas image with JSON coordinate map for game engines.

Tested tool guide Tested browser tools Checked August 16, 2026

What Texture Atlas Packer does and how it behaves

When a game project has many separate texture files, Texture Atlas Packer places them in non-overlapping regions of one larger image and supplies JSON describing every region. The atlas becomes the shared texture; the map tells a renderer which rectangle represents a requested source. The common surprise is that the image and JSON are a matched pair, not independent exports. Keeping only the atlas loses the boundaries, while reusing an older map after repacking can point at unrelated pixels.

How the result is produced

1

Atlas layout

Provide multiple source images in the set you want to pack. The tool assigns each image a non-overlapping rectangular area within one larger canvas and produces that canvas as the atlas. The atlas dimensions describe the combined image, while each source retains its own region. Packing changes where a texture is addressed; it does not make all sources interchangeable.

2

Coordinate map

The companion JSON records where each packed texture lies in the atlas. Keep it paired with that exact atlas and use the reported position and size to select a subimage. Coordinates are metadata, not visible crop marks. A consumer must interpret the map's actual field names and coordinate convention instead of assuming the schema used by another packer.

Good uses

  • Preparing a game's inventory, ability, and status icons as one atlas, with the JSON map supplying the rectangle to draw when the interface requests a particular icon.
  • Turning separately exported character animation frames into one sheet, then using the mapped frame rectangles to advance the animation without maintaining a separate texture file for every pose.
  • Grouping tile, decal, and particle images used in the same scene so a custom renderer can select each rectangular subtexture from one shared atlas.

Limits and checks

  • Confirm whether the consuming engine expects pixel rectangles or normalized texture coordinates, and whether its vertical origin agrees with the produced map. A convention mismatch can make a correct region appear shifted, scaled, or vertically flipped.
  • Treat the atlas image and JSON as an indivisible versioned pair. Adding, removing, or changing source textures can produce a different layout; matching filenames do not make coordinates from an older map safe.
  • Compare the final atlas dimensions with the maximum texture size of every target device. Sources may fit individually while the combined atlas does not. Also inspect filtered rendering near region borders for color leakage from neighboring textures.

Common questions

Can I import the generated JSON directly into my game engine?

Not necessarily. Engines and asset importers often require particular property names, nesting, units, and coordinate origins. Direct import works only when the generated map matches that expected schema. Otherwise, translate the metadata or read it with a custom loader. The atlas remains usable as long as the loader selects the reported rectangles correctly.

Will packing textures automatically make a game smaller or faster?

No. An atlas can reduce texture changes when many packed items are rendered together, but it may also contain unused canvas area. Decoded memory depends on the atlas dimensions and pixel format. Measure download size and rendering performance in the target runtime; packing organizes texture regions but does not guarantee either improvement.

References and verification

The behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools