summaryrefslogtreecommitdiff
path: root/tools/bmp2rb.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bmp2rb.c')
-rw-r--r--tools/bmp2rb.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/bmp2rb.c b/tools/bmp2rb.c
index 08de2e2390..61737f8b0f 100644
--- a/tools/bmp2rb.c
+++ b/tools/bmp2rb.c
@@ -310,6 +310,11 @@ int transform_bitmap(const struct RGBQUAD *src, long width, long height,
310 dst_h = height; 310 dst_h = height;
311 break; 311 break;
312 312
313 case 5: /* 16-bit packed and byte-swapped RGB (5-6-5) */
314 dst_w = width;
315 dst_h = height;
316 break;
317
313 default: /* unknown */ 318 default: /* unknown */
314 debugf("error - Undefined destination format\n"); 319 debugf("error - Undefined destination format\n");
315 return 1; 320 return 1;
@@ -363,6 +368,7 @@ int transform_bitmap(const struct RGBQUAD *src, long width, long height,
363 break; 368 break;
364 369
365 case 4: /* 16-bit packed RGB (5-6-5) */ 370 case 4: /* 16-bit packed RGB (5-6-5) */
371 case 5: /* 16-bit packed and byte-swapped RGB (5-6-5) */
366 for (row = 0; row < height; row++) 372 for (row = 0; row < height; row++)
367 for (col = 0; col < width; col++) 373 for (col = 0; col < width; col++)
368 { 374 {
@@ -371,7 +377,10 @@ int transform_bitmap(const struct RGBQUAD *src, long width, long height,
371 ((src[row * width + col].rgbGreen >> 2) << 5) | 377 ((src[row * width + col].rgbGreen >> 2) << 5) |
372 ((src[row * width + col].rgbBlue >> 3))); 378 ((src[row * width + col].rgbBlue >> 3)));
373 379
374 (*dest)[row * dst_w + col] = rgb; 380 if (format == 4)
381 (*dest)[row * dst_w + col] = rgb;
382 else
383 (*dest)[row * dst_w + col] = ((rgb&0xff00)>>8)|((rgb&0x00ff)<<8);
375 } 384 }
376 break; 385 break;
377 } 386 }
@@ -459,6 +468,7 @@ void print_usage(void)
459 "\t 2 Iriver H1x0 4-grey\n" 468 "\t 2 Iriver H1x0 4-grey\n"
460 "\t 3 Canonical 8-bit grayscale\n" 469 "\t 3 Canonical 8-bit grayscale\n"
461 "\t 4 16-bit packed 5-6-5 RGB (iriver H300)\n" 470 "\t 4 16-bit packed 5-6-5 RGB (iriver H300)\n"
471 "\t 5 16-bit packed and byte-swapped 5-6-5 RGB (iPod)\n"
462 , APPLICATION_NAME); 472 , APPLICATION_NAME);
463 printf("build date: " __DATE__ "\n\n"); 473 printf("build date: " __DATE__ "\n\n");
464} 474}