Implement cammy_photo_export()
This commit is contained in:
parent
2bc5aaf634
commit
94f78b14e1
1 changed files with 27 additions and 1 deletions
28
src/photo.c
28
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; y<CAMMY_PHOTO_HEIGHT; y++) {
|
||||
for (x=0; x<CAMMY_PHOTO_WIDTH; x++) {
|
||||
cammy_tile *tile = &src->tiles[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;
|
||||
|
|
Loading…
Add table
Reference in a new issue