diff --git a/src/photo.c b/src/photo.c index 036e2b6..62adf02 100644 --- a/src/photo.c +++ b/src/photo.c @@ -69,7 +69,33 @@ static uint32_t bayer_matrix[256] = { 0x0203ffff, 0x0203ffff, 0x0203ffff, 0x0203ffff, 0x0203ffff, }; -void cammy_photo_import(cammy_photo *dest, uint8_t *src) { +void cammy_photo_export(cammy_photo *src, uint8_t *dest, int stride) { + static uint8_t values[4] = { + 0, 86, 171, 255 + }; + + size_t x, y; + + for (y=0; ytiles[y>>3][x>>3]; + + int tile_x = x & 7, + tile_y = y & 7; + + uint8_t value = 0; + + value |= (tile->data[ tile_y<<1] & (8 >> tile_x)) + | ((tile->data[(tile_y<<1)+1] & (8 >> tile_x)) << 1); + + value ^= 3; + + dest[stride*CAMMY_PHOTO_WIDTH*y+stride*x] = values[value]; + dest[stride*CAMMY_PHOTO_WIDTH*y+stride*x+1] = values[value]; + dest[stride*CAMMY_PHOTO_WIDTH*y+stride*x+2] = values[value]; + } + } +} void cammy_photo_import(cammy_photo *dest, uint8_t *src, int stride) { size_t x, y;