node-libpng
Version:
Unofficial bindings for node to libpng.
54 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertGrayScaleAlphaToRGBA = exports.isColorGrayScaleAlpha = exports.colorGrayScaleAlpha = void 0;
const rgba_1 = require("./rgba");
/**
* Create a new color of type `gray scale` with alpha channel.
*
* @param gray The value for the `gray` part of the color.
* @param a The value for the alpha channel part of the color.
*
* @return The color in gray scale with alpha channel representation.
*/
function colorGrayScaleAlpha(gray, a) {
const color = [gray, a];
Object.defineProperty(color, "gray", { get() { return this[0]; } });
Object.defineProperty(color, "a", { get() { return this[1]; } });
return color;
}
exports.colorGrayScaleAlpha = colorGrayScaleAlpha;
/**
* Checks if the given parameter is a color of type `ColorGrayScaleA`.
*
* @param color The input to check.
*
* @return `true` if `color` was of type `ColorGrayScaleA` and `false` otherwise.
*/
function isColorGrayScaleAlpha(color) {
if (typeof color !== "object" || !Array.isArray(color)) {
return false;
}
if (color.length !== 2) {
return false;
}
if (typeof color.gray !== "number") {
return false;
}
if (typeof color.a !== "number") {
return false;
}
return true;
}
exports.isColorGrayScaleAlpha = isColorGrayScaleAlpha;
/**
* Converts a color of type `ColorGrayScaleAlpha` to `ColorRGBA`.
*
* @param color The color to convert.
*
* @return The converted color in rgba format.
*/
function convertGrayScaleAlphaToRGBA(grayScaleAlpha) {
return rgba_1.colorRGBA(grayScaleAlpha.gray, grayScaleAlpha.gray, grayScaleAlpha.gray, grayScaleAlpha.a);
}
exports.convertGrayScaleAlphaToRGBA = convertGrayScaleAlphaToRGBA;
//# sourceMappingURL=gray-scale-alpha.js.map