summaryrefslogtreecommitdiff
path: root/tools/bmp2rb.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bmp2rb.c')
-rw-r--r--tools/bmp2rb.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/tools/bmp2rb.c b/tools/bmp2rb.c
index e2e02a2a50..264179a571 100644
--- a/tools/bmp2rb.c
+++ b/tools/bmp2rb.c
@@ -319,6 +319,7 @@ int transform_bitmap(const struct RGBQUAD *src, int width, int height,
319 319
320 case 4: /* 16-bit packed RGB (5-6-5) */ 320 case 4: /* 16-bit packed RGB (5-6-5) */
321 case 5: /* 16-bit packed and byte-swapped RGB (5-6-5) */ 321 case 5: /* 16-bit packed and byte-swapped RGB (5-6-5) */
322 case 8: /* 16-bit packed RGB (5-6-5) vertical stride*/
322 dst_w = width; 323 dst_w = width;
323 dst_h = height; 324 dst_h = height;
324 dst_d = 16; 325 dst_d = 16;
@@ -425,6 +426,19 @@ int transform_bitmap(const struct RGBQUAD *src, int width, int height,
425 (*dest)[(row/8) * dst_w + col] |= data << (row & 7); 426 (*dest)[(row/8) * dst_w + col] |= data << (row & 7);
426 } 427 }
427 break; 428 break;
429
430 case 8: /* 16-bit packed RGB (5-6-5) vertical stride*/
431 for (row = 0; row < height; row++)
432 for (col = 0; col < width; col++)
433 {
434 unsigned short rgb =
435 (((src[row * width + col].rgbRed >> 3) << 11) |
436 ((src[row * width + col].rgbGreen >> 2) << 5) |
437 ((src[row * width + col].rgbBlue >> 3)));
438
439 (*dest)[col * dst_h + row] = rgb;
440 }
441 break;
428 } 442 }
429 443
430 return 0; 444 return 0;
@@ -569,7 +583,8 @@ void print_usage(void)
569 "\t 4 16-bit packed 5-6-5 RGB (iriver H300)\n" 583 "\t 4 16-bit packed 5-6-5 RGB (iriver H300)\n"
570 "\t 5 16-bit packed and byte-swapped 5-6-5 RGB (iPod)\n" 584 "\t 5 16-bit packed and byte-swapped 5-6-5 RGB (iPod)\n"
571 "\t 6 Greyscale iPod 4-grey\n" 585 "\t 6 Greyscale iPod 4-grey\n"
572 "\t 7 Greyscale X5 remote 4-grey\n"); 586 "\t 7 Greyscale X5 remote 4-grey\n"
587 "\t 8 16-bit packed 5-6-5 RGB with a vertical stride\n");
573 printf("build date: " __DATE__ "\n\n"); 588 printf("build date: " __DATE__ "\n\n");
574} 589}
575 590