锐生
使用节点从图像中提取出显著颜色 锐口 用于图像加载/处理.
这是叉子 节点活性剂 在绝对不支持浏览器的情况下,减少依赖性/复杂性。 此分叉是为内部使用而创建的,不发布给任何软件包管理器.
使用量
节点.js
// ES5
var Vibrant = require('sharp-vibrant')
// ES6
import * as Vibrant from '@livechart/sharp-vibrant'
// TypeScript
import Vibrant = require('@livechart/sharp-vibrant')
// Using builder
Vibrant.from('path/to/image').getPalette((err, palette) => console.log(palette))
// Promise
Vibrant.from('path/to/image').getPalette()
.then((palette) => console.log(palette))
// Using constructor
let v = new Vibrant('path/to/image', opts)
v.getPalette((err, palette) => console.log(palette))
// Promise
v.getPalette().then((palette) => console.log(palette))
贡献准则
- 进行修改
- 必要时写入测试规格
- 通行证测试
- 提交 只有源文件 (没有编译的文件)
参考资料
Vibrant
主要类别 sharp-vibrant。 。 。 .
Vibrant.from(src: ImageSource): Builder
做一个 Builder 一个图像。 回返a Builder 举个例子.
constructor(src: ImageSource, opts: Partial<Options>)
| 名称 | 说明 |
|---|---|
image | 图像文件路径( 支持 HTTP/ HTTP) |
opts | 选项( 可选) |
ImageSource
export type ImageSource = string | Buffer
Options
export interface Options {
colorCount: number
quality: number
maxDimension: number
filters: Array<Filter>
ImageClass: ImageClass
quantizer: Quantizer
generator?: Generator
}
| 外地 | 默认 | 说明 |
|---|---|---|
colorCount | 64国道 | 用于生成手表的初始调色板中的颜色量 |
quality | 页:1 | 在下采样阶段使用的缩放系数 . 1 意思是没有下采样 若为 maxDimension 中,不使用此值. |
maxDimension | undefined | 在下采样阶段使用的图像最长的一面. 此字段将覆盖 quality。 。 。 . |
filters | [] | 过滤器阵列 |
ImageClass | Image.Node | 一个 Image 执行类 |
quantizer | Vibrant.Quantizer.MMCQ | A 类 Quantizer 执行类 |
generator | Vibrant.Generator.Default | 一个 Generator 实例 |
Resolvable<T>
export type Resolvable<T> = T | Promise<T>
Quantizer
export interface Quantizer {
(pixels: Pixels, opts: Options): Resolvable<Array<Swatch>>
}
Generator
export interface Generator {
(swatches: Array<Swatch>, opts?: Object): Resolvable<Palette>
}
Filter
回返 true 如果颜色要保留的话.
export interface Filter {
(red: number, green: number, blue: number, alpha: number): boolean
}
getPalette(cb?: Callback<PaletteResult>): Promise<PaletteResult>
| 名称 | 说明 |
|---|---|
cb | (可选)回调功能. 使用时可省略 Promise。 。 。 . |
Callback<T>
export interface Callback<T> {
(err?: Error, result?: T): void
}
ImageDimensions
interface ImageDimensions {
readonly width: number
readonly height: number
}
PaletteResult
interface PaletteResult {
readonly pixelCount: number
readonly imageDimensions: ImageDimensions
readonly palette: Palette
}
Vibrant.Builder
用于更改配置的帮助类并创建 Vibrant 举个例子 方法a Builder 实例可以是:
Vibrant.from(src)
.quality(1)
.clearFilters()
// ...
.getPalette()
.then((paletteResult) => {})
constructor(src: ImageSource, opts: Partial<Options>)
参数与 Vibrant.constructor。 。 。 .
quality(q: number): Builder
设定 opts.quality 改为 q返回此选项 Builder 举个例子.
maxColorCount(n: number): Builder
设定 opts.colorCount 改为 n返回此选项 Builder 举个例子.
maxDimension(d: number): Builder
设定 opts.maxDimension 改为 d返回此选项 Builder 举个例子.
addFilter(f: Filter): Builder
添加过滤函数。 返回这个 Builder 举个例子.
removeFilter(f: Filter): Builder
删除过滤功能。 返回这个 Builder 举个例子.
clearFilters(): Builder
清除所有过滤器 。 返回这个 Builder 举个例子.
useImageClass(imageClass: ImageClass): Builder
指定哪个 Image 要使用的执行类。 返回这个 Builder 举个例子.
useQuantizer(quantizer: Quantizer): Builder
指定哪个 Quantizer 要使用的执行类。 返回这个 Builder 举个例子.
useGenerator(generator: Generator): Builder
设定 opts.generator 改为 generator返回此选项 Builder 举个例子.
build(): Vibrant
构建并返回 a Vibrant 实例已配置.
getPalette(cb?: Callback<PaletteResult>): Promise<PaletteResult>
构建一个 Vibrant 选项 getPalette 方法.
Vibrant.Swatch
代表一个图像调色板生成的颜色表 .
Vec3
export interface Vec3 extends Array<number> {
0: number,
1: number,
2: number
}
constructor(rgb: Vec3, population: number)
内用.
| 名称 | 说明 |
|---|---|
rgb | [r, g, b] |
population | 图像中的颜色人口 |
getHsl(): Vec3
getPopulation(): number
getRgb(): Vec3
getHex(): string
getTitleTextColor(): string
返回用于在此显示的任何“ 标题” 文本的适当颜色 Swatch颜色.
getBodyTextColor(): string
返回任何在此显示的“ body” 文本的适当颜色 Swatch颜色.
Vibrant.Util
实用方法. 内用.
hexToRgb(hex: string): Vec3
rgbToHex(r: number, g: number, b: number): string
hslToRgb(h: number, s: number, l: number): Vec3
rgbToHsl(r: number, g: number, b: number): Vec3
xyzToRgb(x: number, y: number, z: number): Vec3
rgbToXyz(r: number, g: number, b: number): Vec3
xyzToCIELab(x: number, y: number, z: number): Vec3
rgbToCIELab(l: number, a: number, b: number): Vec3
deltaE94(lab1: number, lab2: number): number
计算 CIE 三角洲 E 1994 diff 之间 lab1 财务报告和审定财务报表 lab2。两种颜色在 CIE-Lab 颜色空间。 在测试中用来比较出两种颜色的感知相似性.
rgbDiff(rgb1: Vec3, rgb2: Vec3): number
计算 CIE 三角洲 E 1994 diff rgb1 财务报告和审定财务报表 rgb2。 。 。 .
hexDiff(hex1: string, hex2: string): number
计算 CIE 三角洲 E 1994 diff hex1 财务报告和审定财务报表 hex2。 。 。 .
getColorDiffStatus(d: number): string
获得一个字符串来描述颜色 diff 的含义。 用于测试.
| 德尔塔-E | 感觉 | 回返 |
|---|---|---|
| 页:1 | 人眼所不觉. | "Perfect" |
| 第1至2条 | 透过相近观察能知. | "Close" |
| 第2-10条 | 可观一相. | "Good" |
| 11 - 49 (中文(简体) ) | 颜色比对相近 | "Similar" |
| 50 - 100岁 | 颜色完全相反 | Wrong |
国家预防机制的任务
| 任务 | 说明 |
|---|---|
build:node | 构建节点.js目标 |
build | 构建全部目标 |
clean:node | 干净的节点.js 构建 |
clean | 清理所有建筑 |
test:node | 运行节点.js specs (mocha) |
test | 运行全部规格 |