Pebble supports both a PBIs (uncompressed bitmap images) as well as PNG8 images. PNG images are compressed allowing for storage savings up to 90%. PNG8 is a PNG that uses palette-based or grayscale images with 1, 2, 4 or 8 bits per pixel. For palette-based images the pixel data represents the index into the palette, such that each pixel only needs to be large enough to represent the palette size, so.
1-bit
supports up to 2 colors,
2-bit
supports up to 4 colors,
4-bit
supports up to 16 colors,
8-bit
supports up to 256 colors.
For grayscale images, the pixel data represents the luminosity (or shade of gray).
1-bit
supports black and white
2-bit
supports black, dark_gray, light_gray and white
4-bit
supports black, white and 14 shades of gray
8-bit
supports black, white and 254 shades of gray
The Basalt Platform provides for 2-bits per color channel, so images are optimized by the SDK tooling when loaded as a resource-type "png" to the Pebble's 64-colors with 4 levels of transparency. This optimization also handles mapping unsupported colors to the nearest supported color, and reducing the pixel depth to the number of bits required to support the optimized number of colors. PNG8 images from other sources are supported, with the colors truncated to match supported colors at runtime.
Do you have questions about the Pebble SDK?
Do you need some help understanding something on this page?
You can either take advantage of our awesome developer community and check out the SDK Help forums, or you can send us a message through the website!