diff options
author | Alec Murphy <alec@checksum.fail> | 2017-07-08 12:44:13 -0400 |
---|---|---|
committer | Alec Murphy <alec@checksum.fail> | 2017-07-08 12:44:13 -0400 |
commit | 7f39cc353b65b153d2216b2df4815dd912edfd19 (patch) | |
tree | 5be1a57a585c363ca7730ab0d6705615cce8d258 | |
parent | 26915252b0ba04446377d9235abb775891e7d943 (diff) |
Fixes #1
-rw-r--r-- | FilePNG.HC | 79 |
1 files changed, 13 insertions, 66 deletions
@@ -18,7 +18,7 @@ class CFilePNG U32 ihdr_crc; U32 plte_len; U32 plte_typ; - U8 plte_tbl[48]; + U8 plte_tbl[PNG_COLORS_NUM*3]; U32 plte_crc; U32 idat_len; U32 idat_typ; @@ -66,7 +66,6 @@ U32 Crc32(I64 buf, I64 ofs, I64 len) while (i<len) { crc = crc_table[(crc ^ stream[i]) & 0xFF] ^ (crc >> 8); - //"%02X ",stream[i]; i++; } return (crc^0xFFFFFFFF); @@ -92,70 +91,18 @@ public I64 PNGWrite(U8 *filename,CDC *dc,I64 bits=4) png->plte_len=htonl(48); png->plte_typ='PLTE'; - // use the default palette for now - png->plte_tbl[00]=0x00; - png->plte_tbl[01]=0x00; - png->plte_tbl[02]=0x00; - - png->plte_tbl[03]=0x00; - png->plte_tbl[04]=0x00; - png->plte_tbl[05]=0xAA; - - png->plte_tbl[06]=0x00; - png->plte_tbl[07]=0xAA; - png->plte_tbl[08]=0x00; - - png->plte_tbl[09]=0x00; - png->plte_tbl[10]=0xAA; - png->plte_tbl[11]=0xAA; - - png->plte_tbl[12]=0xAA; - png->plte_tbl[13]=0x00; - png->plte_tbl[14]=0x00; - - png->plte_tbl[15]=0xAA; - png->plte_tbl[16]=0x00; - png->plte_tbl[17]=0xAA; - - png->plte_tbl[18]=0xAA; - png->plte_tbl[19]=0x55; - png->plte_tbl[20]=0x00; - - png->plte_tbl[21]=0xAA; - png->plte_tbl[22]=0xAA; - png->plte_tbl[23]=0xAA; - - png->plte_tbl[24]=0x55; - png->plte_tbl[25]=0x55; - png->plte_tbl[26]=0x55; - - png->plte_tbl[27]=0x55; - png->plte_tbl[28]=0x55; - png->plte_tbl[29]=0xFF; - - png->plte_tbl[30]=0x55; - png->plte_tbl[31]=0xFF; - png->plte_tbl[32]=0x55; - - png->plte_tbl[33]=0x55; - png->plte_tbl[34]=0xFF; - png->plte_tbl[35]=0xFF; - - png->plte_tbl[36]=0xFF; - png->plte_tbl[37]=0x55; - png->plte_tbl[38]=0x55; - - png->plte_tbl[39]=0xFF; - png->plte_tbl[40]=0x55; - png->plte_tbl[41]=0xFF; - - png->plte_tbl[42]=0xFF; - png->plte_tbl[43]=0xFF; - png->plte_tbl[44]=0x55; - - png->plte_tbl[45]=0xFF; - png->plte_tbl[46]=0xFF; - png->plte_tbl[47]=0xFF; + I64 dci=0; + I64 pngi=0; + while (dci<PNG_COLORS_NUM) + { + png->plte_tbl[pngi]=dc->palette[dci].r>>8; + pngi++; + png->plte_tbl[pngi]=dc->palette[dci].g>>8; + pngi++; + png->plte_tbl[pngi]=dc->palette[dci].b>>8; + pngi++; + dci++; + }; png->plte_crc=htonl(Crc32(png,&png->plte_typ,ntohl(png->plte_len)+4)); |