UNPKG

pixel-utils

Version:
85 lines (84 loc) 3.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = rawToRgb; var _quickScale = require("quick-scale"); var _makeNoDataRgb = _interopRequireDefault(require("../make-no-data-rgb")); var _convertSingle = _interopRequireDefault(require("./convert-single")); var _convertSingleStr = _interopRequireDefault(require("./convert-single-str")); var _convertDouble = _interopRequireDefault(require("./convert-double")); var _convertDoubleStr = _interopRequireDefault(require("./convert-double-str")); var _convertTriple = _interopRequireDefault(require("./convert-triple")); var _convertTripleStr = _interopRequireDefault(require("./convert-triple-str")); var _convertMany = _interopRequireDefault(require("./convert-many")); var _convertManyStr = _interopRequireDefault(require("./convert-many-str")); var _rgbToStr = _interopRequireDefault(require("../rgb-to-str")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function rawToRgb({ format = "array", ranges, flip, new_no_data_pixel, new_no_data_value, no_range_value, no_range_value_strategy, old_no_data_value, round = true }) { const nbands = ranges.length; if (new_no_data_pixel && new_no_data_value) { throw new Error("[pixel-utils/raw-to-rgb] can't specify both new_no_data_pixel and new_no_data_value"); } if (new_no_data_pixel === undefined || new_no_data_pixel === null) { if (new_no_data_value === undefined || new_no_data_value === null) { new_no_data_pixel = (0, _makeNoDataRgb.default)(null); } else { new_no_data_pixel = (0, _makeNoDataRgb.default)(new_no_data_value); } } if (new_no_data_pixel === undefined) throw new Error("[raw-to-rgb] undefined new_no_data_pixel"); const new_range = [0 === new_no_data_value ? 1 : 0, 255 === new_no_data_value ? 254 : 255]; const options = { flip, no_range_value, no_range_value_strategy, round }; const scalefns = ranges.slice(0, 3).map(rng => (0, _quickScale.createScaleFunction)(rng, new_range, options)); if (nbands === 1) { if (format === "string") { // @ts-ignore return _convertSingleStr.default.bind(null, old_no_data_value, (0, _rgbToStr.default)(new_no_data_pixel), ...scalefns); } else { // @ts-ignore return _convertSingle.default.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns); } } else if (nbands === 2) { if (format === "string") { // @ts-ignore return _convertDoubleStr.default.bind(null, old_no_data_value, (0, _rgbToStr.default)(new_no_data_pixel), ...scalefns); } else { // @ts-ignore return _convertDouble.default.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns); } } else if (nbands === 3) { if (format === "string") { // @ts-ignore return _convertTripleStr.default.bind(null, old_no_data_value, (0, _rgbToStr.default)(new_no_data_pixel), ...scalefns); } else { // @ts-ignore return _convertTriple.default.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns); } } else if (nbands >= 4) { if (format === "string") { // @ts-ignore return _convertManyStr.default.bind(null, old_no_data_value, (0, _rgbToStr.default)(new_no_data_pixel), ...scalefns); } else { // @ts-ignore return _convertMany.default.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns); } } else { throw new Error("[pixel-utils/raw-to-rgb] invalid number of bands: " + nbands); } }