UNPKG

@poupe/material-color-utilities

Version:

Algorithms and utilities that power the Material Design 3 (M3) color system, including choosing theme colors from images and creating tones of colors; all in a new color space.

46 lines 1.69 kB
/** * @license * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as utils from '../utils/color_utils.js'; /** * Quantizes an image into a map, with keys of ARGB colors, and values of the * number of times that color appears in the image. */ // material_color_utilities is designed to have a consistent API across // platforms and modular components that can be moved around easily. Using a // class as a namespace facilitates this. // // tslint:disable-next-line:class-as-namespace export class QuantizerMap { /** * @param pixels Colors in ARGB format. * @return A Map with keys of ARGB colors, and values of the number of times * the color appears in the image. */ static quantize(pixels) { const countByColor = new Map(); for (let i = 0; i < pixels.length; i++) { const pixel = pixels[i]; const alpha = utils.alphaFromArgb(pixel); if (alpha < 255) { continue; } countByColor.set(pixel, (countByColor.get(pixel) ?? 0) + 1); } return countByColor; } } //# sourceMappingURL=quantizer_map.js.map