All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
21 lines
724 B
JavaScript
21 lines
724 B
JavaScript
import { applyPredictor } from '../predictor.js';
|
|
|
|
export default class BaseDecoder {
|
|
async decode(fileDirectory, buffer) {
|
|
const decoded = await this.decodeBlock(buffer);
|
|
const predictor = fileDirectory.Predictor || 1;
|
|
if (predictor !== 1) {
|
|
const isTiled = !fileDirectory.StripOffsets;
|
|
const tileWidth = isTiled ? fileDirectory.TileWidth : fileDirectory.ImageWidth;
|
|
const tileHeight = isTiled ? fileDirectory.TileLength : (
|
|
fileDirectory.RowsPerStrip || fileDirectory.ImageLength
|
|
);
|
|
return applyPredictor(
|
|
decoded, predictor, tileWidth, tileHeight, fileDirectory.BitsPerSample,
|
|
fileDirectory.PlanarConfiguration,
|
|
);
|
|
}
|
|
return decoded;
|
|
}
|
|
}
|