Dali Compressed file format: Difference between revisions
Jump to navigation
Jump to search
(New page) |
m (corrected typo) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
16 words palette |
16 words palette |
||
− | ? |
+ | ? size of byte array in bytes, stored as plain ASCII text + cr/lf |
− | ? |
+ | ? size of long array in bytes, stored as plain ASCII text + cr/lf |
− | ? array of bytes |
+ | ? array of bytes |
− | ? array of longs |
+ | ? array of longs |
+ | ? image data: |
||
− | No description of the compression method exists at this time. |
||
+ | Assuming the tables have been loaded into arrays: |
||
+ | uint8 *btab=malloc(size of byte array); |
||
+ | uint32 *ltab=malloc(size of long array); |
||
+ | |||
+ | uint8 *bmap=malloc(32000); /* st bitmap */ |
||
+ | |||
+ | /* PureC example by Lonny Pursell - placed into the Public Domain 1/19/2017 */ |
||
+ | uint8 flag; |
||
+ | uint16 i, index, offset; |
||
+ | uint32 data; |
||
+ | flag = index = 0; |
||
+ | for (i=0; i<=156; i=i+4) { |
||
+ | for (offset=0; offset<=31840; offset=offset+160) { |
||
+ | if (flag==0) { |
||
+ | flag = btab[index]; |
||
+ | data = ltab[index]; |
||
+ | index++; |
||
+ | } |
||
+ | bmap[offset + i] = (data >> 24) & 0xFF; |
||
+ | bmap[offset + i + 1] = (data >> 16) & 0xFF; |
||
+ | bmap[offset + i + 2] = (data >> 8) & 0xFF; |
||
+ | bmap[offset + i + 3] = data & 0xFF; |
||
+ | flag--; |
||
+ | } |
||
+ | } |
||
</pre> |
</pre> |
||
Back to [[ST Picture Formats]] |
Back to [[ST Picture Formats]] |
Latest revision as of 10:44, 20 January 2017
Dali compressed *.LPK (ST low resolution) *.MPK (ST medium resolution) *.HPK (ST high resolution) Files do not seem to have any resolution or bit plane info stored in them. The file extension seems to be the only way to determine the contents. 16 words palette ? size of byte array in bytes, stored as plain ASCII text + cr/lf ? size of long array in bytes, stored as plain ASCII text + cr/lf ? array of bytes ? array of longs ? image data: Assuming the tables have been loaded into arrays: uint8 *btab=malloc(size of byte array); uint32 *ltab=malloc(size of long array); uint8 *bmap=malloc(32000); /* st bitmap */ /* PureC example by Lonny Pursell - placed into the Public Domain 1/19/2017 */ uint8 flag; uint16 i, index, offset; uint32 data; flag = index = 0; for (i=0; i<=156; i=i+4) { for (offset=0; offset<=31840; offset=offset+160) { if (flag==0) { flag = btab[index]; data = ltab[index]; index++; } bmap[offset + i] = (data >> 24) & 0xFF; bmap[offset + i + 1] = (data >> 16) & 0xFF; bmap[offset + i + 2] = (data >> 8) & 0xFF; bmap[offset + i + 3] = data & 0xFF; flag--; } }
Back to ST Picture Formats