Image sizes
| Size | What it contains |
|---|---|
| 64 × 64 | The current format, since Java Edition 1.8. Separate left and right arms and legs, and an outer layer for every body part. |
| 64 × 32 | The old format. Only the right arm and leg are stored; the game mirrors them for the left side. The only outer layer is the hat. |
Where each body part is
Positions are in pixels from the top-left corner of the image, as x, y, followed by the size of the area. The table uses classic 4-pixel arms.
| Body part | Base layer area | Base front face | Outer layer area | Outer front face |
|---|---|---|---|---|
| Head | 0, 0 (32 × 16) | 8, 8 (8 × 8) | Hat: 32, 0 (32 × 16) | 40, 8 (8 × 8) |
| Body | 16, 16 (24 × 16) | 20, 20 (8 × 12) | Jacket: 16, 32 (24 × 16) | 20, 36 (8 × 12) |
| Right arm | 40, 16 (16 × 16) | 44, 20 (4 × 12) | Right sleeve: 40, 32 (16 × 16) | 44, 36 (4 × 12) |
| Left arm | 32, 48 (16 × 16) | 36, 52 (4 × 12) | Left sleeve: 48, 48 (16 × 16) | 52, 52 (4 × 12) |
| Right leg | 0, 16 (16 × 16) | 4, 20 (4 × 12) | Right trouser leg: 0, 32 (16 × 16) | 4, 36 (4 × 12) |
| Left leg | 16, 48 (16 × 16) | 20, 52 (4 × 12) | Left trouser leg: 0, 48 (16 × 16) | 4, 52 (4 × 12) |
How a body part is unfolded
A body part of width w, height h and depth d uses an area of (2d + 2w) × (d + h) pixels:
- The first d rows hold the top face (after d pixels of margin) and then the bottom face.
- The rows below hold, from left to right, the right side, the front, the left side and the back.
For the head (8 × 8 × 8), that makes the face the 8 × 8 square starting at 8, 8, and the front of the hat the square starting at 40, 8.
Slim arms
Slim skins have 3-pixel arms instead of 4. The arm boxes are 3 × 12 × 4, so each arm area is 14 pixels wide instead of 16, and the right-most 2 columns of every arm area are unused. The rest of the layout is the same.
The model isn’t stored in the image: it is a setting on the player’s profile, chosen when the skin is uploaded. Seen from the front, a player is 16 pixels wide with classic arms and 14 with slim arms, and 32 pixels tall.
Transparency
- The base layer is always drawn fully opaque in Java Edition. Transparent pixels there show their stored colour, often black.
- Outer layer pixels can be fully transparent.
More on this in why parts of a skin look black.