| 288 | } |
| 289 | |
| 290 | size_t prepareHeader(uint8_t headerbuf[], uint16_t bufw, uint16_t bufh, imgParam imageParams, size_t buffer_size) { |
| 291 | size_t totalbytes; |
| 292 | uint8_t headersize = 6; |
| 293 | |
| 294 | headerbuf[0] = headersize; |
| 295 | memcpy(headerbuf + (imageParams.rotatebuffer % 2 == 1 ? 3 : 1), &bufw, sizeof(uint16_t)); |
| 296 | memcpy(headerbuf + (imageParams.rotatebuffer % 2 == 1 ? 1 : 3), &bufh, sizeof(uint16_t)); |
| 297 | |
| 298 | if (imageParams.bpp == 3 || imageParams.bpp == 4) { |
| 299 | totalbytes = buffer_size * imageParams.bpp + headersize; |
| 300 | headerbuf[5] = imageParams.bpp; |
| 301 | } else if (imageParams.hasRed && imageParams.bpp > 1) { |
| 302 | totalbytes = buffer_size * 2 + headersize; |
| 303 | headerbuf[5] = 2; |
| 304 | } else { |
| 305 | totalbytes = buffer_size + headersize; |
| 306 | headerbuf[5] = 1; |
| 307 | } |
| 308 | |
| 309 | return totalbytes; |
| 310 | } |
| 311 | |
| 312 | bool initializeCompressor(Miniz::tdefl_compressor *comp, int flags) { |
| 313 | return Miniz::tdefl_initOEPL(comp, NULL, NULL, flags) == Miniz::TDEFL_STATUS_OKAY; |