玄武岩上 Pebble-SDK 中位图的结构是什么

What is the structure of a bitmap in Pebble-SDK on basalt

使用 graphics_capture_frame_buffer 返回一个 GBitmap。如果我想直接使用它,它的格式是什么。我将如何修改单个像素?

我在 SDK 给出的 isometric 示例中找到了这个。所以它看起来是一个 uint8_t 每个像素一行一次将 ARGB 保持在 2 位。

#define GColorFromRGB ((GColor8){ \ .a = 3, \ .r = (uint8_t)(red) >> 6, \ .g = (uint8_t)(green) >> 6, \ .b = (uint8_t)(blue) >> 6, \ })

static void set_pixel(GPoint pixel, GColor color) {
  if(pixel.x >= 0 && pixel.x < 144 && pixel.y >= 0 && pixel.y < 168) {
    memset(&s_fb_data[(pixel.y * s_fb_size.w) + pixel.x], (uint8_t)color.argb, 1);
  }
}

在 Pebble 3.0 中,您可以使用 gbitmap_* 访问器:

当格式为GBitmapFormat8Bit时,每个像素在ARGB中是一个字节(每个分量2位)。