| 24 | | |
|---|
| 25 | | void cc3_send_image_direct (void) |
|---|
| 26 | | { |
|---|
| 27 | | cc3_pixbuf_load (); |
|---|
| 28 | | |
|---|
| 29 | | uint32_t x, y; |
|---|
| 30 | | uint32_t size_x, size_y; |
|---|
| 31 | | uint8_t *row = cc3_malloc_rows(1); |
|---|
| 32 | | uint8_t num_channels = cc3_g_pixbuf_frame.coi == CC3_CHANNEL_ALL ? 3 : 1; |
|---|
| 33 | | |
|---|
| 34 | | |
|---|
| 35 | | size_x = cc3_g_pixbuf_frame.width; |
|---|
| 36 | | size_y = cc3_g_pixbuf_frame.height; |
|---|
| 37 | | |
|---|
| 38 | | putchar (1); |
|---|
| 39 | | putchar (size_x); |
|---|
| 40 | | if (size_y > 255) |
|---|
| 41 | | size_y = 255; |
|---|
| 42 | | putchar (size_y); |
|---|
| 43 | | for (y = 0; y < size_y; y++) { |
|---|
| 44 | | putchar (2); |
|---|
| 45 | | |
|---|
| 46 | | cc3_pixbuf_read_rows(row, 1); |
|---|
| 47 | | for (x = 0; x < size_x * num_channels; x++) { |
|---|
| 48 | | uint8_t p = row[x]; |
|---|
| 49 | | putchar (p); |
|---|
| 50 | | } |
|---|
| 51 | | } |
|---|
| 52 | | putchar (3); |
|---|
| 53 | | |
|---|
| 54 | | free(row); |
|---|
| 55 | | } |
|---|