chr2img: shorten writebmp, explain bitmasks

This commit is contained in:
Sigrid Solveig Haflínudóttir 2021-06-23 17:39:44 +02:00
parent 62d809147b
commit 80c8e75076
1 changed files with 6 additions and 12 deletions

View File

@ -93,9 +93,10 @@ static int
writebmp(int w, int h, u32int *p)
{
/* clang-format off */
int sz = 14 + 40 + 4*4 + 4*w*h;
u8int hd[14+40+4*4] = {
'B', 'M',
0, 0, 0, 0, /* file size */
sz, sz>>8, sz>>16, sz>>24, /* file size */
0, 0,
0, 0,
14+40+4*4, 0, 0, 0, /* pixel data offset */
@ -110,20 +111,13 @@ writebmp(int w, int h, u32int *p)
0, 0, 0, 0, /* dummy ver ppm */
0, 0, 0, 0, /* dummy num of colors */
0, 0, 0, 0, /* dummy important colors */
0, 0, 0, 0xff,
0, 0, 0xff, 0,
0, 0xff, 0, 0,
0xff, 0, 0, 0,
0, 0, 0, 0xff, /* R mask */
0, 0, 0xff, 0, /* G mask */
0, 0xff, 0, 0, /* B mask */
0xff, 0, 0, 0, /* A mask */
};
int sz;
/* clang-format on */
sz = 14 + 40 + 4 * 4 + 4 * w * h;
hd[2] = sz;
hd[3] = sz >> 8;
hd[4] = sz >> 16;
hd[5] = sz >> 24;
write(1, hd, sizeof(hd));
while(h-- >= 0)
write(1, p + w * h, 4 * w);