453 |
|
case 8: |
454 |
|
return br->hdr->palette[br->scanline[i]]; |
455 |
|
case 1: |
456 |
< |
return br->hdr->palette[br->scanline[i>>3]>>((7-i)&7) & 1]; |
456 |
> |
return br->hdr->palette[br->scanline[i>>3]>>(7-(i&7)) & 1]; |
457 |
|
case 4: |
458 |
|
return br->hdr->palette[br->scanline[i>>1]>>(i&1?4:0) & 0xf]; |
459 |
|
case 16: |
549 |
|
else |
550 |
|
return NULL; |
551 |
|
hdr = (BMPHeader *)malloc(sizeof(BMPHeader) + |
552 |
< |
sizeof(RGBquad)*(1<<n) - |
552 |
> |
sizeof(RGBquad)*((size_t)1<<n) - |
553 |
|
sizeof(hdr->palette) + |
554 |
|
infolen); |
555 |
|
if (hdr == NULL) |
563 |
|
hdr->nColors = ncolors; |
564 |
|
hdr->impColors = 0; /* says all colors important */ |
565 |
|
hdr->infoSiz = infolen; |
566 |
< |
memset((void *)hdr->palette, 0, sizeof(RGBquad)*(1<<n) + infolen); |
566 |
> |
memset((void *)hdr->palette, 0, sizeof(RGBquad)*((size_t)1<<n) + infolen); |
567 |
|
for (n = ncolors; n--; ) |
568 |
|
hdr->palette[n].r = hdr->palette[n].g = |
569 |
|
hdr->palette[n].b = n*255/(ncolors-1); |