aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Murphy <alec@checksum.fail>2017-07-08 12:44:13 -0400
committerAlec Murphy <alec@checksum.fail>2017-07-08 12:44:13 -0400
commit7f39cc353b65b153d2216b2df4815dd912edfd19 (patch)
tree5be1a57a585c363ca7730ab0d6705615cce8d258
parent26915252b0ba04446377d9235abb775891e7d943 (diff)
Fixes #1
-rw-r--r--FilePNG.HC79
1 files changed, 13 insertions, 66 deletions
diff --git a/FilePNG.HC b/FilePNG.HC
index 6a34e72..6ed42f1 100644
--- a/FilePNG.HC
+++ b/FilePNG.HC
@@ -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));