basedecoder.js 724 B

1234567891011121314151617181920
  1. import { applyPredictor } from '../predictor.js';
  2. export default class BaseDecoder {
  3. async decode(fileDirectory, buffer) {
  4. const decoded = await this.decodeBlock(buffer);
  5. const predictor = fileDirectory.Predictor || 1;
  6. if (predictor !== 1) {
  7. const isTiled = !fileDirectory.StripOffsets;
  8. const tileWidth = isTiled ? fileDirectory.TileWidth : fileDirectory.ImageWidth;
  9. const tileHeight = isTiled ? fileDirectory.TileLength : (
  10. fileDirectory.RowsPerStrip || fileDirectory.ImageLength
  11. );
  12. return applyPredictor(
  13. decoded, predictor, tileWidth, tileHeight, fileDirectory.BitsPerSample,
  14. fileDirectory.PlanarConfiguration,
  15. );
  16. }
  17. return decoded;
  18. }
  19. }