pixel-utils
Version:
Utility Functions for Pixels
35 lines (32 loc) • 988 B
text/typescript
import addAlpha from "../add-alpha";
import pushAlpha from "../push-alpha";
import makeNoDataRGBA from "../make-no-data-rgba";
import safely_convert from "./safely-convert";
import quickly_convert from "./quickly-convert";
import { NoDataValue, RGB, CleanRGBA } from "../types";
export default function rgbToRgba({
old_no_data_value,
new_no_data_value = null,
safe = true
}: {
old_no_data_value?: NoDataValue;
new_no_data_value?: NoDataValue;
safe?: boolean;
} = {}): (px: RGB) => CleanRGBA {
if (typeof old_no_data_value === "number") {
if (safe) {
// @ts-ignore
return safely_convert.bind(null, old_no_data_value, new_no_data_value);
} else {
const new_no_data_pixel = makeNoDataRGBA(new_no_data_value); // we will reuse this no data pixel
// @ts-ignore
return quickly_convert.bind(null, old_no_data_value, new_no_data_pixel);
}
} else {
if (safe) {
return addAlpha;
} else {
return pushAlpha;
}
}
}