packbits.js 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. const basedecoder_js_1 = __importDefault(require("./basedecoder.js"));
  7. class PackbitsDecoder extends basedecoder_js_1.default {
  8. decodeBlock(buffer) {
  9. const dataView = new DataView(buffer);
  10. const out = [];
  11. for (let i = 0; i < buffer.byteLength; ++i) {
  12. let header = dataView.getInt8(i);
  13. if (header < 0) {
  14. const next = dataView.getUint8(i + 1);
  15. header = -header;
  16. for (let j = 0; j <= header; ++j) {
  17. out.push(next);
  18. }
  19. i += 1;
  20. }
  21. else {
  22. for (let j = 0; j <= header; ++j) {
  23. out.push(dataView.getUint8(i + j + 1));
  24. }
  25. i += header + 1;
  26. }
  27. }
  28. return new Uint8Array(out).buffer;
  29. }
  30. }
  31. exports.default = PackbitsDecoder;
  32. //# sourceMappingURL=packbits.js.map