Initial commit

This commit is contained in:
robert committed 2025-05-30 18:13:30 +08:00
commit e49726988c
5445 files changed
+1089914

No files matched your search

+2921
View File
File diff suppressed because it is too large. Load diff
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../src/index.ts", "../../src/constants/index.ts", "../../src/constants/bt709.ts", "../../src/conversion/index.ts", "../../src/conversion/rgb2xyz.ts", "../../src/utils/arithmetic.ts", "../../src/conversion/rgb2hsl.ts", "../../src/conversion/xyz2lab.ts", "../../src/conversion/rgb2lab.ts", "../../src/conversion/lab2xyz.ts", "../../src/conversion/xyz2rgb.ts", "../../src/conversion/lab2rgb.ts", "../../src/distance/index.ts", "../../src/distance/distanceCalculator.ts", "../../src/distance/cie94.ts", "../../src/distance/ciede2000.ts", "../../src/distance/cmetric.ts", "../../src/distance/euclidean.ts", "../../src/distance/manhattan.ts", "../../src/distance/pngQuant.ts", "../../src/palette/index.ts", "../../src/palette/paletteQuantizer.ts", "../../src/utils/point.ts", "../../src/utils/pointContainer.ts", "../../src/utils/palette.ts", "../../src/utils/index.ts", "../../src/utils/hueStatistics.ts", "../../src/utils/progressTracker.ts", "../../src/palette/neuquant/neuquant.ts", "../../src/palette/neuquant/neuquantFloat.ts", "../../src/palette/rgbquant/colorHistogram.ts", "../../src/palette/rgbquant/rgbquant.ts", "../../src/palette/wu/wuQuant.ts", "../../src/image/index.ts", "../../src/image/imageQuantizer.ts", "../../src/image/nearestColor.ts", "../../src/image/array.ts", "../../src/image/spaceFillingCurves/hilbertCurve.ts", "../../src/image/riemersma.ts", "../../src/quality/index.ts", "../../src/quality/ssim.ts", "../../src/basicAPI.ts"],
"sourcesContent": ["/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * iq.ts - Image Quantization Library\n */\nimport * as constants from './constants';\nimport * as conversion from './conversion';\nimport * as distance from './distance';\nimport * as palette from './palette';\nimport * as image from './image';\nimport * as quality from './quality';\nimport * as utils from './utils';\n\nexport {\n buildPalette,\n buildPaletteSync,\n applyPalette,\n applyPaletteSync,\n} from './basicAPI';\n\nexport type {\n ImageQuantization,\n PaletteQuantization,\n ColorDistanceFormula,\n} from './basicAPI';\n\nexport { constants, conversion, distance, palette, image, quality, utils };\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * constants.ts - part of Image Quantization Library\n */\nimport * as bt709 from './bt709';\n\nexport { bt709 };\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * constants.ts - part of Image Quantization Library\n */\n\n/**\n * sRGB (based on ITU-R Recommendation BT.709)\n * http://en.wikipedia.org/wiki/SRGB\n */\nexport enum Y {\n RED = 0.2126,\n GREEN = 0.7152,\n BLUE = 0.0722,\n WHITE = 1,\n}\n\nexport enum x {\n RED = 0.64,\n GREEN = 0.3,\n BLUE = 0.15,\n WHITE = 0.3127,\n}\n\nexport enum y {\n RED = 0.33,\n GREEN = 0.6,\n BLUE = 0.06,\n WHITE = 0.329,\n}\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * iq.ts - Image Quantization Library\n */\nexport { rgb2xyz } from './rgb2xyz';\nexport { rgb2hsl } from './rgb2hsl';\nexport { rgb2lab } from './rgb2lab';\nexport { lab2xyz } from './lab2xyz';\nexport { lab2rgb } from './lab2rgb';\nexport { xyz2lab } from './xyz2lab';\nexport { xyz2rgb } from './xyz2rgb';\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * rgb2xyz.ts - part of Image Quantization Library\n */\nfunction correctGamma(n: number) {\n return n > 0.04045 ? ((n + 0.055) / 1.055) ** 2.4 : n / 12.92;\n}\n\nexport function rgb2xyz(r: number, g: number, b: number) {\n // gamma correction, see https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation\n r = correctGamma(r / 255);\n g = correctGamma(g / 255);\n b = correctGamma(b / 255);\n\n // Observer. = 2\u00B0, Illuminant = D65\n return {\n x: r * 0.4124 + g * 0.3576 + b * 0.1805,\n y: r * 0.2126 + g * 0.7152 + b * 0.0722,\n z: r * 0.0193 + g * 0.1192 + b * 0.9505,\n };\n}\n", "export function degrees2radians(n: number) {\n return n * (Math.PI / 180);\n}\n\nexport function max3(a: number, b: number, c: number) {\n let m = a;\n if (m < b) m = b;\n if (m < c) m = c;\n return m;\n}\n\nexport function min3(a: number, b: number, c: number) {\n let m = a;\n if (m > b) m = b;\n if (m > c) m = c;\n return m;\n}\n\nexport function intInRange(value: number, low: number, high: number) {\n if (value > high) value = high;\n if (value < low) value = low;\n return value | 0;\n}\n\nexport function inRange0to255Rounded(n: number) {\n n = Math.round(n);\n if (n > 255) n = 255;\n else if (n < 0) n = 0;\n return n;\n}\n\nexport function inRange0to255(n: number) {\n if (n > 255) n = 255;\n else if (n < 0) n = 0;\n return n;\n}\n\nexport function stableSort<T>(\n arrayToSort: T[],\n callback: (a: T, b: T) => number,\n) {\n const type = typeof arrayToSort[0];\n let sorted: T[];\n\n if (type === 'number' || type === 'string') {\n const ord = Object.create(null);\n for (let i = 0, l = arrayToSort.length; i < l; i++) {\n const val = arrayToSort[i] as unknown as string;\n if (ord[val] || ord[val] === 0) continue;\n ord[val] = i;\n }\n\n sorted = arrayToSort.sort((a, b) => callback(a, b) || ord[a] - ord[b]);\n } else {\n const ord2 = arrayToSort.slice(0);\n sorted = arrayToSort.sort(\n (a, b) => callback(a, b) || ord2.indexOf(a) - ord2.indexOf(b),\n );\n }\n\n return sorted;\n}\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * rgb2hsl.ts - part of Image Quantization Library\n */\nimport { min3, max3 } from '../utils/arithmetic';\n\n/**\n * Calculate HSL from RGB\n * Hue is in degrees [0..360]\n * Lightness: [0..1]\n * Saturation: [0..1]\n * http://web.archive.org/web/20060914040436/http://local.wasp.uwa.edu.au/~pbourke/colour/hsl/\n */\nexport function rgb2hsl(r: number, g: number, b: number) {\n const min = min3(r, g, b);\n const max = max3(r, g, b);\n const delta = max - min;\n const l = (min + max) / 510;\n\n let s = 0;\n if (l > 0 && l < 1) s = delta / (l < 0.5 ? max + min : 510 - max - min);\n\n let h = 0;\n if (delta > 0) {\n if (max === r) {\n h = (g - b) / delta;\n } else if (max === g) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\Line truncated
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,IAAK,IAAL,kBAAK,OAAL;AACL,iBAAM,UAAN;AACA,mBAAQ,UAAR;AACA,kBAAO,UAAP;AACA,mBAAQ,KAAR;AAJU;AAAA;AAOL,IAAK,IAAL,kBAAK,OAAL;AACL,iBAAM,QAAN;AACA,mBAAQ,OAAR;AACA,kBAAO,QAAP;AACA,mBAAQ,UAAR;AAJU;AAAA;AAOL,IAAK,IAAL,kBAAK,OAAL;AACL,iBAAM,QAAN;AACA,mBAAQ,OAAR;AACA,kBAAO,QAAP;AACA,mBAAQ,SAAR;AAJU;AAAA;AD1BZ;;AEAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,AAOA,sBAAsB,GAAW;AAC/B,SAAO,IAAI,UAAY,MAAI,SAAS,UAAU,MAAM,IAAI;AAAA;AAGnD,iBAAiB,GAAW,GAAW,GAAW;AAEvD,MAAI,aAAa,IAAI;AACrB,MAAI,aAAa,IAAI;AACrB,MAAI,aAAa,IAAI;AAGrB,SAAO;AAAA,IACL,GAAG,IAAI,SAAS,IAAI,SAAS,IAAI;AAAA,IACjC,GAAG,IAAI,SAAS,IAAI,SAAS,IAAI;AAAA,IACjC,GAAG,IAAI,SAAS,IAAI,SAAS,IAAI;AAAA;AAAA;;;ACrBrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,yBAAyB,GAAW;AACzC,SAAO,IAAK,MAAK,KAAK;AAAA;AAGjB,cAAc,GAAW,GAAW,GAAW;AACpD,MAAI,IAAI;AACR,MAAI,IAAI;AAAG,QAAI;AACf,MAAI,IAAI;AAAG,QAAI;AACf,SAAO;AAAA;AAGF,cAAc,GAAW,GAAW,GAAW;AACpD,MAAI,IAAI;AACR,MAAI,IAAI;AAAG,QAAI;AACf,MAAI,IAAI;AAAG,QAAI;AACf,SAAO;AAAA;AAGF,oBAAoB,OAAe,KAAa,MAAc;AACnE,MAAI,QAAQ;AAAM,YAAQ;AAC1B,MAAI,QAAQ;AAAK,YAAQ;AACzB,SAAO,QAAQ;AAAA;AAGV,8BAA8B,GAAW;AAC9C,MAAI,KAAK,MAAM;AACf,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AACpB,SAAO;AAAA;AAGF,uBAAuB,GAAW;AACvC,MAAI,IAAI;AAAK,QAAI;AAAA,WACR,IAAI;AAAG,QAAI;AACpB,SAAO;AAAA;AAGF,oBACL,aACA,UACA;AACA,QAAM,OAAO,OAAO,YAAY;AAChC,MAAI;AAEJ,MAAI,SAAS,YAAY,SAAS,UAAU;AAC1C,UAAM,MAAM,uBAAO,OAAO;AAC1B,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,IAAI,GAAG,KAAK;AAClD,YAAM,MAAM,YAAY;AACxB,UAAI,IAAI,QAAQ,IAAI,SAAS;AAAG;AAChC,UAAI,OAAO;AAAA;AAGb,aAAS,YAAY,KAAK,CAAC,GAAG,MAAM,SAAS,GAAG,MAAM,IAAI,KAAK,IAAI;AAAA,SAC9D;AACL,UAAM,OAAO,YAAY,MAAM;AAC/B,aAAS,YAAY,KACnB,CAAC,GAAG,MAAM,SAAS,GAAG,MAAM,KAAK,QAAQ,KAAK,KAAK,QAAQ;AAAA;AAI/D,SAAO;AAAA;;;AC5DT,AAgBO,iBAAiB,GAAW,GAAW,GAAW;AACvD,QAAM,MAAM,KAAK,GAAG,GAAG;AACvB,QAAM,MAAM,KAAK,GAAG,GAAG;AACvB,QAAM,QAAQ,MAAM;AACpB,QAAM,IAAK,OAAM,OAAO;AAExB,MAAI,IAAI;AACR,MAAI,IAAI,KAAK,IAAI;AAAG,QAAI,QAAS,KAAI,MAAM,MAAM,MAAM,MAAM,MAAM;AAEnE,MAAI,IAAI;AACR,MAAI,QAAQ,GAAG;AACb,QAAI,QAAQ,GAAG;AACb,UAAK,KAAI,KAAK;AAAA,eACL,QAAQ,GAAG;AACpB,UAAI,IAAK,KAAI,KAAK;AAAA,WACb;AACL,UAAI,IAAK,KAAI,KAAK;AAAA;AAGpB,SAAK;AACL,QAAI,IAAI;AAAG,WAAK;AAAA;AAElB,SAAO,EAAE,GAAG,GAAG;AAAA;;;ACtCjB,AAOA,IAAM,OAAO;AACb,IAAM,OAAO;AACb,IAAM,OAAO;AAEb,eAAe,GAAW;AACxB,SAAO,IAAI,UAAW,KAAM,KAAI,KAAK,QAAQ,IAAI,KAAK;AAAA;AAGjD,iBAAiB,IAAW,IAAW,GAAW;AACvD,OAAI,MAAM,KAAI;AACd,OAAI,MAAM,KAAI;AACd,MAAI,MAAM,IAAI;AAEd,MAAI,MAAM,KAAI,KAAK;AAAG,UAAM,IAAI,MAAM;AACtC,SAAO;AAAA,IACL,GAAG,KAAK,IAAI,GAAG,MAAM,KAAI;AAAA,IACzB,GAAG,MAAO,MAAI;AAAA,IACd,GAAG,MAAO,MAAI;AAAA;AAAA;;;ACxBlB,AAUO,iBAAiB,GAAW,GAAW,GAAW;AACvD,QAAM,MAAM,QAAQ,GAAG,GAAG;AAC1B,SAAO,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI;AAAA;;;ACZnC,AAOA,IAAM,QAAO;AACb,IAAM,QAAO;AACb,IAAM,QAAO;AAEb,gBAAe,GAAW;AACxB,SAAO,IAAI,cAAc,KAAK,IAAK,KAAI,KAAK,OAAO;AAAA;AAG9C,iBAAiB,GAAW,GAAW,GAAW;AACvD,QAAM,KAAK,KAAI,MAAM;AACrB,QAAM,KAAI,IAAI,MAAM;AACpB,QAAM,IAAI,KAAI,IAAI;AAElB,SAAO;AAAA,IACL,GAAG,QAAO,OAAM;AAAA,IAChB,GAAG,QAAO,OAAM;AAAA,IAChB,GAAG,QAAO,OAAM;AAAA;AAAA;;;ACvBpB,AAUA,uBAAsB,GAAW;AAC/B,SAAO,IAAI,WAAY,QAAQ,KAAM,KAAI,OAAO,QAAQ,QAAQ;AAAA;AAG3D,iBAAiB,IAAW,IAAW,GAAW;AAEvD,QAAM,IAAI,cAAa,KAAI,SAAS,KAAI,UAAU,IAAI;AACtD,QAAM,IAAI,cAAa,KAAI,UAAU,KAAI,SAAS,IAAI;AACtD,QAAM,IAAI,cAAa,KAAI,SAAS,KAAI,SAAS,IAAI;AAErD,SAAO;AAAA,IACL,GAAG,qBAAqB,IAAI;AAAA,IAC5B,GAAG,qBAAqB,IAAI;AAAA,IAC5B,GAAG,qBAAqB,IAAI;AAAA;AAAA;;;ACvBhC,AAUO,iBAAiB,GAAW,GAAW,GAAW;AACvD,QAAM,MAAM,QAAQ,GAAG,GAAG;AAC1B,SAAO,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI;AAAA;ARZnC;;ASAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,AASO,uCAA0C;AAAA,EAS/C,cAAc;AARJ;AACA;AAQR,SAAK;AAGL,SAAK,cAAc,KAAK,KAAK,KAAK;AAAA;AAAA,EAGpC,cAAc,GAAW,GAAW,GAAW,GAAW;AACxD,SAAK,cAAc;AAAA,MACjB,GAAG,IAAI,IAAI,MAAM,IAAI;AAAA,MACrB,GAAG,IAAI,IAAI,MAAM,IAAI;AAAA,MACrB,GAAG,IAAI,IAAI,MAAM,IAAI;AAAA,MACrB,GAAG,IAAI,IAAI,MAAM,IAAI;AAAA;AAEvB,SAAK,eAAe,KAAK,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA;AAAA,EAG7D,oBAAoB,QAAmB,QAAmB;AACxD,WACE,KAAK,aACH,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,KACL,KAAK;AAAA;AAAA;;;AC9Cf,AAeO,kCAAqC,2BAA2B;AAAA,EAWrE,aACE,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA;AACA,UAAM,OAAO,QACX,cAAc,KAAK,KAAK,YAAY,IACpC,cAAc,KAAK,KAAK,YAAY,IACpC,cAAc,KAAK,KAAK,YAAY;AAEtC,UAAM,OAAO,QACX,cAAc,KAAK,KAAK,YAAY,IACpC,cAAc,KAAK,KAAK,YAAY,IACpC,cAAc,KAAK,KAAK,YAAY;AAGtC,UAAM,KAAK,KAAK,IAAI,KAAK;AACzB,UAAM,KAAK,KAAK,IAAI,KAAK;AACzB,UAAM,KAAK,KAAK,IAAI,KAAK;AACzB,UAAM,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AACrD,UAAM,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AACrD,UAAM,KAAK,KAAK;AAEhB,QAAI,SAAS,KAAK,KAAK,KAAK,KAAK,KAAK;AACtC,aAAS,SAAS,IAAI,IAAI,KAAK,KAAK;AAEpC,UAAM,SAAU,MAAK,MAAM,KAAK,YAAY,IAAI,KAAK;AAGrD,WAAO,KAAK,KACT,MAAK,KAAK,QAAQ,IAChB,MAAM,KAAM,KAAK,MAAM,QAAQ,IAC/B,UAAU,KAAM,KAAK,MAAM,QAAQ,IACpC,UAAU;AAAA;AAAA;AAKX,kCAA4B,cAAc;AAAA,EACrC,eAAe;AACvB,SALine truncated
"names": []
}
+2886
View File
File diff suppressed because it is too large. Load diff
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../src/constants/index.ts", "../../src/constants/bt709.ts", "../../src/conversion/index.ts", "../../src/conversion/rgb2xyz.ts", "../../src/utils/arithmetic.ts", "../../src/conversion/rgb2hsl.ts", "../../src/conversion/xyz2lab.ts", "../../src/conversion/rgb2lab.ts", "../../src/conversion/lab2xyz.ts", "../../src/conversion/xyz2rgb.ts", "../../src/conversion/lab2rgb.ts", "../../src/distance/index.ts", "../../src/distance/distanceCalculator.ts", "../../src/distance/cie94.ts", "../../src/distance/ciede2000.ts", "../../src/distance/cmetric.ts", "../../src/distance/euclidean.ts", "../../src/distance/manhattan.ts", "../../src/distance/pngQuant.ts", "../../src/palette/index.ts", "../../src/palette/paletteQuantizer.ts", "../../src/utils/point.ts", "../../src/utils/pointContainer.ts", "../../src/utils/palette.ts", "../../src/utils/index.ts", "../../src/utils/hueStatistics.ts", "../../src/utils/progressTracker.ts", "../../src/palette/neuquant/neuquant.ts", "../../src/palette/neuquant/neuquantFloat.ts", "../../src/palette/rgbquant/colorHistogram.ts", "../../src/palette/rgbquant/rgbquant.ts", "../../src/palette/wu/wuQuant.ts", "../../src/image/index.ts", "../../src/image/imageQuantizer.ts", "../../src/image/nearestColor.ts", "../../src/image/array.ts", "../../src/image/spaceFillingCurves/hilbertCurve.ts", "../../src/image/riemersma.ts", "../../src/quality/index.ts", "../../src/quality/ssim.ts", "../../src/basicAPI.ts", "../../src/index.ts"],
"sourcesContent": ["/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * constants.ts - part of Image Quantization Library\n */\nimport * as bt709 from './bt709';\n\nexport { bt709 };\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * constants.ts - part of Image Quantization Library\n */\n\n/**\n * sRGB (based on ITU-R Recommendation BT.709)\n * http://en.wikipedia.org/wiki/SRGB\n */\nexport enum Y {\n RED = 0.2126,\n GREEN = 0.7152,\n BLUE = 0.0722,\n WHITE = 1,\n}\n\nexport enum x {\n RED = 0.64,\n GREEN = 0.3,\n BLUE = 0.15,\n WHITE = 0.3127,\n}\n\nexport enum y {\n RED = 0.33,\n GREEN = 0.6,\n BLUE = 0.06,\n WHITE = 0.329,\n}\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * iq.ts - Image Quantization Library\n */\nexport { rgb2xyz } from './rgb2xyz';\nexport { rgb2hsl } from './rgb2hsl';\nexport { rgb2lab } from './rgb2lab';\nexport { lab2xyz } from './lab2xyz';\nexport { lab2rgb } from './lab2rgb';\nexport { xyz2lab } from './xyz2lab';\nexport { xyz2rgb } from './xyz2rgb';\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * rgb2xyz.ts - part of Image Quantization Library\n */\nfunction correctGamma(n: number) {\n return n > 0.04045 ? ((n + 0.055) / 1.055) ** 2.4 : n / 12.92;\n}\n\nexport function rgb2xyz(r: number, g: number, b: number) {\n // gamma correction, see https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation\n r = correctGamma(r / 255);\n g = correctGamma(g / 255);\n b = correctGamma(b / 255);\n\n // Observer. = 2\u00B0, Illuminant = D65\n return {\n x: r * 0.4124 + g * 0.3576 + b * 0.1805,\n y: r * 0.2126 + g * 0.7152 + b * 0.0722,\n z: r * 0.0193 + g * 0.1192 + b * 0.9505,\n };\n}\n", "export function degrees2radians(n: number) {\n return n * (Math.PI / 180);\n}\n\nexport function max3(a: number, b: number, c: number) {\n let m = a;\n if (m < b) m = b;\n if (m < c) m = c;\n return m;\n}\n\nexport function min3(a: number, b: number, c: number) {\n let m = a;\n if (m > b) m = b;\n if (m > c) m = c;\n return m;\n}\n\nexport function intInRange(value: number, low: number, high: number) {\n if (value > high) value = high;\n if (value < low) value = low;\n return value | 0;\n}\n\nexport function inRange0to255Rounded(n: number) {\n n = Math.round(n);\n if (n > 255) n = 255;\n else if (n < 0) n = 0;\n return n;\n}\n\nexport function inRange0to255(n: number) {\n if (n > 255) n = 255;\n else if (n < 0) n = 0;\n return n;\n}\n\nexport function stableSort<T>(\n arrayToSort: T[],\n callback: (a: T, b: T) => number,\n) {\n const type = typeof arrayToSort[0];\n let sorted: T[];\n\n if (type === 'number' || type === 'string') {\n const ord = Object.create(null);\n for (let i = 0, l = arrayToSort.length; i < l; i++) {\n const val = arrayToSort[i] as unknown as string;\n if (ord[val] || ord[val] === 0) continue;\n ord[val] = i;\n }\n\n sorted = arrayToSort.sort((a, b) => callback(a, b) || ord[a] - ord[b]);\n } else {\n const ord2 = arrayToSort.slice(0);\n sorted = arrayToSort.sort(\n (a, b) => callback(a, b) || ord2.indexOf(a) - ord2.indexOf(b),\n );\n }\n\n return sorted;\n}\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * rgb2hsl.ts - part of Image Quantization Library\n */\nimport { min3, max3 } from '../utils/arithmetic';\n\n/**\n * Calculate HSL from RGB\n * Hue is in degrees [0..360]\n * Lightness: [0..1]\n * Saturation: [0..1]\n * http://web.archive.org/web/20060914040436/http://local.wasp.uwa.edu.au/~pbourke/colour/hsl/\n */\nexport function rgb2hsl(r: number, g: number, b: number) {\n const min = min3(r, g, b);\n const max = max3(r, g, b);\n const delta = max - min;\n const l = (min + max) / 510;\n\n let s = 0;\n if (l > 0 && l < 1) s = delta / (l < 0.5 ? max + min : 510 - max - min);\n\n let h = 0;\n if (delta > 0) {\n if (max === r) {\n h = (g - b) / delta;\n } else if (max === g) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\n h *= 60;\n if (h < 0) h += 360;\n }\n return { h, s, l };\n}\n", "/**\n * @preserve\n * Copyright 2015-2018 Igor Bezkrovnyi\n * All rights reserved. (MIT Licensed)\n *\n * xyz2lab.ts - part of Image Quantization Library\n */\nconst refX = 0.95047; // ref_X = 95.047 Observer= 2\u00B0, Illuminant= D65\nconst refY = 1.0; // ref_Y = 100.000\nconst refZ = 1.08883; // ref_Z = 108.883\n\nfunction pivot(n: number) {\n return n > 0.008856 ? n ** (1 / 3) : 7.787 * n + 16 / 116;\n}\n\nexport function xyz2lab(x: number, y: number, z: number) {\n x = pivot(x / refX);\n y = pivot(y / refY);\n z = pivot(z / refZ);\n\n if (116 * y - 16 < 0) throw new Error('xxx');\n return {\n L: Math.max(0, 116 * y - 16),\n Line truncated
"mappings": "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 truncated
"names": []
}
+22
View File
@@ -0,0 +1,22 @@
import { PointContainer } from './utils/pointContainer';
import { Palette } from './utils/palette';
export declare type ColorDistanceFormula = 'cie94-textiles' | 'cie94-graphic-arts' | 'ciede2000' | 'color-metric' | 'euclidean' | 'euclidean-bt709-noalpha' | 'euclidean-bt709' | 'manhattan' | 'manhattan-bt709' | 'manhattan-nommyde' | 'pngquant';
export declare type PaletteQuantization = 'neuquant' | 'neuquant-float' | 'rgbquant' | 'wuquant';
export declare type ImageQuantization = 'nearest' | 'riemersma' | 'floyd-steinberg' | 'false-floyd-steinberg' | 'stucki' | 'atkinson' | 'jarvis' | 'burkes' | 'sierra' | 'two-sierra' | 'sierra-lite';
export interface ProgressOptions {
onProgress?: (progress: number) => void;
}
export interface ApplyPaletteOptions {
colorDistanceFormula?: ColorDistanceFormula;
imageQuantization?: ImageQuantization;
}
export interface BuildPaletteOptions {
colorDistanceFormula?: ColorDistanceFormula;
paletteQuantization?: PaletteQuantization;
colors?: number;
}
export declare function buildPaletteSync(images: PointContainer[], { colorDistanceFormula, paletteQuantization, colors, }?: BuildPaletteOptions): Palette;
export declare function buildPalette(images: PointContainer[], { colorDistanceFormula, paletteQuantization, colors, onProgress, }?: BuildPaletteOptions & ProgressOptions): Promise<Palette>;
export declare function applyPaletteSync(image: PointContainer, palette: Palette, { colorDistanceFormula, imageQuantization }?: ApplyPaletteOptions): PointContainer;
export declare function applyPalette(image: PointContainer, palette: Palette, { colorDistanceFormula, imageQuantization, onProgress, }?: ApplyPaletteOptions & ProgressOptions): Promise<PointContainer>;
//# sourceMappingURL=basicAPI.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"basicAPI.d.ts","sourceRoot":"","sources":["../../../src/basicAPI.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAS1C,oBAAY,oBAAoB,GAC5B,gBAAgB,GAChB,oBAAoB,GACpB,WAAW,GACX,cAAc,GACd,WAAW,GACX,yBAAyB,GACzB,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,mBAAmB,GACnB,UAAU,CAAC;AAEf,oBAAY,mBAAmB,GAC3B,UAAU,GACV,gBAAgB,GAChB,UAAU,GACV,SAAS,CAAC;AAEd,oBAAY,iBAAiB,GACzB,SAAS,GACT,WAAW,GACX,iBAAiB,GACjB,uBAAuB,GACvB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,EACE,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,GACP,GAAE,mBAAwB,WAW5B;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EAAE,EACxB,EACE,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,EACN,UAAU,GACX,GAAE,mBAAmB,GAAG,eAAoB,oBA8B9C;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,OAAO,EAChB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,GAAE,mBAAwB,kBAStE;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,OAAO,EAChB,EACE,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,GACX,GAAE,mBAAmB,GAAG,eAAoB,2BA8B9C"}
+30
View File
@@ -0,0 +1,30 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* constants.ts - part of Image Quantization Library
*/
/**
* sRGB (based on ITU-R Recommendation BT.709)
* http://en.wikipedia.org/wiki/SRGB
*/
export declare enum Y {
RED = 0.2126,
GREEN = 0.7152,
BLUE = 0.0722,
WHITE = 1
}
export declare enum x {
RED = 0.64,
GREEN = 0.3,
BLUE = 0.15,
WHITE = 0.3127
}
export declare enum y {
RED = 0.33,
GREEN = 0.6,
BLUE = 0.06,
WHITE = 0.329
}
//# sourceMappingURL=bt709.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"bt709.d.ts","sourceRoot":"","sources":["../../../../src/constants/bt709.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,oBAAY,CAAC;IACX,GAAG,SAAS;IACZ,KAAK,SAAS;IACd,IAAI,SAAS;IACb,KAAK,IAAI;CACV;AAED,oBAAY,CAAC;IACX,GAAG,OAAO;IACV,KAAK,MAAM;IACX,IAAI,OAAO;IACX,KAAK,SAAS;CACf;AAED,oBAAY,CAAC;IACX,GAAG,OAAO;IACV,KAAK,MAAM;IACX,IAAI,OAAO;IACX,KAAK,QAAQ;CACd"}
+10
View File
@@ -0,0 +1,10 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* constants.ts - part of Image Quantization Library
*/
import * as bt709 from './bt709';
export { bt709 };
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,CAAC"}
+15
View File
@@ -0,0 +1,15 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
export { rgb2xyz } from './rgb2xyz';
export { rgb2hsl } from './rgb2hsl';
export { rgb2lab } from './rgb2lab';
export { lab2xyz } from './lab2xyz';
export { lab2rgb } from './lab2rgb';
export { xyz2lab } from './xyz2lab';
export { xyz2rgb } from './xyz2rgb';
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/conversion/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
+6
View File
@@ -0,0 +1,6 @@
export declare function lab2rgb(L: number, a: number, b: number): {
r: number;
g: number;
b: number;
};
//# sourceMappingURL=lab2rgb.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"lab2rgb.d.ts","sourceRoot":"","sources":["../../../../src/conversion/lab2rgb.ts"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAGtD"}
+6
View File
@@ -0,0 +1,6 @@
export declare function lab2xyz(L: number, a: number, b: number): {
x: number;
y: number;
z: number;
};
//# sourceMappingURL=lab2xyz.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"lab2xyz.d.ts","sourceRoot":"","sources":["../../../../src/conversion/lab2xyz.ts"],"names":[],"mappings":"AAeA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAUtD"}
+13
View File
@@ -0,0 +1,13 @@
/**
* Calculate HSL from RGB
* Hue is in degrees [0..360]
* Lightness: [0..1]
* Saturation: [0..1]
* http://web.archive.org/web/20060914040436/http://local.wasp.uwa.edu.au/~pbourke/colour/hsl/
*/
export declare function rgb2hsl(r: number, g: number, b: number): {
h: number;
s: number;
l: number;
};
//# sourceMappingURL=rgb2hsl.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"rgb2hsl.d.ts","sourceRoot":"","sources":["../../../../src/conversion/rgb2hsl.ts"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAuBtD"}
+6
View File
@@ -0,0 +1,6 @@
export declare function rgb2lab(r: number, g: number, b: number): {
L: number;
a: number;
b: number;
};
//# sourceMappingURL=rgb2lab.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"rgb2lab.d.ts","sourceRoot":"","sources":["../../../../src/conversion/rgb2lab.ts"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAGtD"}
+6
View File
@@ -0,0 +1,6 @@
export declare function rgb2xyz(r: number, g: number, b: number): {
x: number;
y: number;
z: number;
};
//# sourceMappingURL=rgb2xyz.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"rgb2xyz.d.ts","sourceRoot":"","sources":["../../../../src/conversion/rgb2xyz.ts"],"names":[],"mappings":"AAWA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAYtD"}
+6
View File
@@ -0,0 +1,6 @@
export declare function xyz2lab(x: number, y: number, z: number): {
L: number;
a: number;
b: number;
};
//# sourceMappingURL=xyz2lab.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"xyz2lab.d.ts","sourceRoot":"","sources":["../../../../src/conversion/xyz2lab.ts"],"names":[],"mappings":"AAeA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAWtD"}
+6
View File
@@ -0,0 +1,6 @@
export declare function xyz2rgb(x: number, y: number, z: number): {
r: number;
g: number;
b: number;
};
//# sourceMappingURL=xyz2rgb.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"xyz2rgb.d.ts","sourceRoot":"","sources":["../../../../src/conversion/xyz2rgb.ts"],"names":[],"mappings":"AAcA,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;EAWtD"}
+31
View File
@@ -0,0 +1,31 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* cie94.ts - part of Image Quantization Library
*/
import { AbstractDistanceCalculator } from './distanceCalculator';
/**
* CIE94 method of delta-e
* http://en.wikipedia.org/wiki/Color_difference#CIE94
*/
export declare abstract class AbstractCIE94 extends AbstractDistanceCalculator {
/**
* Weight in distance: 0.25
* Max DeltaE: 100
* Max DeltaA: 255
*/
protected _kA: number;
protected _Kl: number;
protected _K1: number;
protected _K2: number;
calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
}
export declare class CIE94Textiles extends AbstractCIE94 {
protected _setDefaults(): void;
}
export declare class CIE94GraphicArts extends AbstractCIE94 {
protected _setDefaults(): void;
}
//# sourceMappingURL=cie94.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"cie94.d.ts","sourceRoot":"","sources":["../../../../src/distance/cie94.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAIlE;;;GAGG;AACH,8BAAsB,aAAc,SAAQ,0BAA0B;IACpE;;;;OAIG;IACH,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAE9B,YAAY,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;CAiCb;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,SAAS,CAAC,YAAY;CAMvB;AAED,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,SAAS,CAAC,YAAY;CAMvB"}
+45
View File
@@ -0,0 +1,45 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* ciede2000.ts - part of Image Quantization Library
*/
import { AbstractDistanceCalculator } from './distanceCalculator';
/**
* CIEDE2000 algorithm - Adapted from Sharma et al's MATLAB implementation at
* http://www.ece.rochester.edu/~gsharma/ciede2000/
*/
export declare class CIEDE2000 extends AbstractDistanceCalculator {
/**
* Weight in distance: 0.25
* Max DeltaE: 100
* Max DeltaA: 255
*/
private static readonly _kA;
private static readonly _pow25to7;
private static readonly _deg360InRad;
private static readonly _deg180InRad;
private static readonly _deg30InRad;
private static readonly _deg6InRad;
private static readonly _deg63InRad;
private static readonly _deg275InRad;
private static readonly _deg25InRad;
protected _setDefaults(): void;
private static _calculatehp;
private static _calculateRT;
private static _calculateT;
private static _calculate_ahp;
private static _calculate_dHp;
calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
calculateRawInLab(Lab1: {
L: number;
a: number;
b: number;
}, Lab2: {
L: number;
a: number;
b: number;
}): number;
}
//# sourceMappingURL=ciede2000.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"ciede2000.d.ts","sourceRoot":"","sources":["../../../../src/distance/ciede2000.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAIlE;;;GAGG;AACH,qBAAa,SAAU,SAAQ,0BAA0B;IACvD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAsB;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAW;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAE1D,SAAS,CAAC,YAAY;IAEtB,OAAO,CAAC,MAAM,CAAC,YAAY;IAM3B,OAAO,CAAC,MAAM,CAAC,YAAY;IAW3B,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAe7B,OAAO,CAAC,MAAM,CAAC,cAAc;IAmB7B,YAAY,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;IAkBZ,iBAAiB,CACf,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;CAuD5C"}
+16
View File
@@ -0,0 +1,16 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* cmetric.ts - part of Image Quantization Library
*/
import { AbstractDistanceCalculator } from './distanceCalculator';
/**
* TODO: Name it: http://www.compuphase.com/cmetric.htm
*/
export declare class CMetric extends AbstractDistanceCalculator {
calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
protected _setDefaults(): void;
}
//# sourceMappingURL=cmetric.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"cmetric.d.ts","sourceRoot":"","sources":["../../../../src/distance/cmetric.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE;;GAEG;AACH,qBAAa,OAAQ,SAAQ,0BAA0B;IACrD,YAAY,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;IAeZ,SAAS,CAAC,YAAY;CACvB"}
+26
View File
@@ -0,0 +1,26 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* common.ts - part of Image Quantization Library
*/
import { PointRGBA } from '../utils/point';
export declare abstract class AbstractDistanceCalculator {
protected _maxDistance: number;
protected _whitePoint: {
r: number;
g: number;
b: number;
a: number;
};
constructor();
setWhitePoint(r: number, g: number, b: number, a: number): void;
calculateNormalized(colorA: PointRGBA, colorB: PointRGBA): number;
/**
* Calculate raw distance (non-normalized)
*/
abstract calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
protected abstract _setDefaults(): void;
}
//# sourceMappingURL=distanceCalculator.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"distanceCalculator.d.ts","sourceRoot":"","sources":["../../../../src/distance/distanceCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,8BAAsB,0BAA0B;IAC9C,SAAS,CAAC,YAAY,EAAG,MAAM,CAAC;IAChC,SAAS,CAAC,WAAW,EAAG;QACtB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;;IASF,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAUxD,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;IAexD;;OAEG;IACH,QAAQ,CAAC,YAAY,CACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,MAAM;IAET,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;CACxC"}
+34
View File
@@ -0,0 +1,34 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* euclidean.ts - part of Image Quantization Library
*/
import { AbstractDistanceCalculator } from './distanceCalculator';
/**
* Euclidean color distance
*/
export declare abstract class AbstractEuclidean extends AbstractDistanceCalculator {
protected _kR: number;
protected _kG: number;
protected _kB: number;
protected _kA: number;
calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
}
export declare class Euclidean extends AbstractEuclidean {
protected _setDefaults(): void;
}
/**
* Euclidean color distance (RGBQuant modification w Alpha)
*/
export declare class EuclideanBT709 extends AbstractEuclidean {
protected _setDefaults(): void;
}
/**
* Euclidean color distance (RGBQuant modification w/o Alpha)
*/
export declare class EuclideanBT709NoAlpha extends AbstractEuclidean {
protected _setDefaults(): void;
}
//# sourceMappingURL=euclidean.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"euclidean.d.ts","sourceRoot":"","sources":["../../../../src/distance/euclidean.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGlE;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,0BAA0B;IACxE,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAE9B,YAAY,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;CAab;AAED,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,SAAS,CAAC,YAAY;CAMvB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,SAAS,CAAC,YAAY;CAOvB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,YAAY;CAMvB"}
+15
View File
@@ -0,0 +1,15 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
export { AbstractDistanceCalculator } from './distanceCalculator';
export { CIE94Textiles, CIE94GraphicArts } from './cie94';
export { CIEDE2000 } from './ciede2000';
export { CMetric } from './cmetric';
export { AbstractEuclidean, Euclidean, EuclideanBT709NoAlpha, EuclideanBT709, } from './euclidean';
export { AbstractManhattan, Manhattan, ManhattanBT709, ManhattanNommyde, } from './manhattan';
export { PNGQuant } from './pngQuant';
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/distance/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
+35
View File
@@ -0,0 +1,35 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* manhattanNeuQuant.ts - part of Image Quantization Library
*/
import { AbstractDistanceCalculator } from './distanceCalculator';
/**
* Manhattan distance (NeuQuant modification) - w/o sRGB coefficients
*/
export declare abstract class AbstractManhattan extends AbstractDistanceCalculator {
protected _kR: number;
protected _kG: number;
protected _kB: number;
protected _kA: number;
calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
}
export declare class Manhattan extends AbstractManhattan {
protected _setDefaults(): void;
}
/**
* Manhattan distance (Nommyde modification)
* https://github.com/igor-bezkrovny/image-quantization/issues/4#issuecomment-235155320
*/
export declare class ManhattanNommyde extends AbstractManhattan {
protected _setDefaults(): void;
}
/**
* Manhattan distance (sRGB coefficients)
*/
export declare class ManhattanBT709 extends AbstractManhattan {
protected _setDefaults(): void;
}
//# sourceMappingURL=manhattan.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"manhattan.d.ts","sourceRoot":"","sources":["../../../../src/distance/manhattan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGlE;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,0BAA0B;IACxE,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAmB,GAAG,EAAE,MAAM,CAAC;IAC/B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAC9B,UAAkB,GAAG,EAAE,MAAM,CAAC;IAE9B,YAAY,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;CAab;AAED,qBAAa,SAAU,SAAQ,iBAAiB;IAC9C,SAAS,CAAC,YAAY;CAMvB;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IACrD,SAAS,CAAC,YAAY;CAOvB;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,SAAS,CAAC,YAAY;CAOvB"}
+37
View File
@@ -0,0 +1,37 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* pngQuant.ts - part of Image Quantization Library
*/
import { AbstractDistanceCalculator } from './distanceCalculator';
/**
* TODO: check quality of this distance equation
* TODO: ask author for usage rights
* taken from:
* {@link http://stackoverflow.com/questions/4754506/color-similarity-distance-in-rgba-color-space/8796867#8796867}
* {@link https://github.com/pornel/pngquant/blob/cc39b47799a7ff2ef17b529f9415ff6e6b213b8f/lib/pam.h#L148}
*/
export declare class PNGQuant extends AbstractDistanceCalculator {
/**
* Author's comments
* px_b.rgb = px.rgb + 0*(1-px.a) // blend px on black
* px_b.a = px.a + 1*(1-px.a)
* px_w.rgb = px.rgb + 1*(1-px.a) // blend px on white
* px_w.a = px.a + 1*(1-px.a)
*
* px_b.rgb = px.rgb // difference same as in opaque RGB
* px_b.a = 1
* px_w.rgb = px.rgb - px.a // difference simplifies to formula below
* px_w.a = 1
*
* (px.rgb - px.a) - (py.rgb - py.a)
* (px.rgb - py.rgb) + (py.a - px.a)
*
*/
calculateRaw(r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number): number;
private _colordifferenceCh;
protected _setDefaults(): void;
}
//# sourceMappingURL=pngQuant.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"pngQuant.d.ts","sourceRoot":"","sources":["../../../../src/distance/pngQuant.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,0BAA0B;IACtD;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM;IAsBZ,OAAO,CAAC,kBAAkB;IAS1B,SAAS,CAAC,YAAY;CACvB"}
+41
View File
@@ -0,0 +1,41 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* ditherErrorDiffusionArray.ts - part of Image Quantization Library
*/
import { AbstractImageQuantizer } from './imageQuantizer';
import { AbstractDistanceCalculator } from '../distance/distanceCalculator';
import { PointContainer } from '../utils/pointContainer';
import { Palette } from '../utils/palette';
import { ImageQuantizerYieldValue } from './imageQuantizerYieldValue';
export declare enum ErrorDiffusionArrayKernel {
FloydSteinberg = 0,
FalseFloydSteinberg = 1,
Stucki = 2,
Atkinson = 3,
Jarvis = 4,
Burkes = 5,
Sierra = 6,
TwoSierra = 7,
SierraLite = 8
}
export declare class ErrorDiffusionArray extends AbstractImageQuantizer {
private _minColorDistance;
private _serpentine;
private _kernel;
/** true = GIMP, false = XNVIEW */
private _calculateErrorLikeGIMP;
private _distance;
constructor(colorDistanceCalculator: AbstractDistanceCalculator, kernel: ErrorDiffusionArrayKernel, serpentine?: boolean, minimumColorDistanceToDither?: number, calculateErrorLikeGIMP?: boolean);
/**
* adapted from http://jsbin.com/iXofIji/2/edit by PAEz
* fixed version. it doesn't use image pixels as error storage, also it doesn't have 0.3 + 0.3 + 0.3 + 0.3 = 0 error
* Mutates pointContainer
*/
quantize(pointContainer: PointContainer, palette: Palette): IterableIterator<ImageQuantizerYieldValue>;
private _fillErrorLine;
private _setKernel;
}
//# sourceMappingURL=array.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/image/array.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAItE,oBAAY,yBAAyB;IACnC,cAAc,IAAI;IAClB,mBAAmB,IAAA;IACnB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;IACN,SAAS,IAAA;IACT,UAAU,IAAA;CACX;AAGD,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC7D,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,kCAAkC;IAClC,OAAO,CAAC,uBAAuB,CAAU;IAEzC,OAAO,CAAC,SAAS,CAA6B;gBAG5C,uBAAuB,EAAE,0BAA0B,EACnD,MAAM,EAAE,yBAAyB,EACjC,UAAU,UAAO,EACjB,4BAA4B,SAAI,EAChC,sBAAsB,UAAQ;IAWhC;;;;OAIG;IACF,QAAQ,CACP,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,GACf,gBAAgB,CAAC,wBAAwB,CAAC;IAsH7C,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;CAoHnB"}
+15
View File
@@ -0,0 +1,15 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* common.ts - part of Image Quantization Library
*/
import { PointContainer } from '../utils/pointContainer';
import { Palette } from '../utils/palette';
import { ImageQuantizerYieldValue } from './imageQuantizerYieldValue';
export declare abstract class AbstractImageQuantizer {
abstract quantize(pointContainer: PointContainer, palette: Palette): IterableIterator<ImageQuantizerYieldValue>;
quantizeSync(pointContainer: PointContainer, palette: Palette): PointContainer;
}
//# sourceMappingURL=imageQuantizer.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"imageQuantizer.d.ts","sourceRoot":"","sources":["../../../../src/image/imageQuantizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,8BAAsB,sBAAsB;IAC1C,QAAQ,CAAC,QAAQ,CACf,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,GACf,gBAAgB,CAAC,wBAAwB,CAAC;IAE7C,YAAY,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;CAS9D"}
@@ -0,0 +1,6 @@
import { PointContainer } from '../utils';
export interface ImageQuantizerYieldValue {
progress: number;
pointContainer?: PointContainer;
}
//# sourceMappingURL=imageQuantizerYieldValue.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"imageQuantizerYieldValue.d.ts","sourceRoot":"","sources":["../../../../src/image/imageQuantizerYieldValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC"}
+13
View File
@@ -0,0 +1,13 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
export { AbstractImageQuantizer } from './imageQuantizer';
export { ImageQuantizerYieldValue } from './imageQuantizerYieldValue';
export { NearestColor } from './nearestColor';
export { ErrorDiffusionArray, ErrorDiffusionArrayKernel } from './array';
export { ErrorDiffusionRiemersma } from './riemersma';
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/image/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
+21
View File
@@ -0,0 +1,21 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* nearestColor.ts - part of Image Quantization Library
*/
import { AbstractImageQuantizer } from './imageQuantizer';
import { AbstractDistanceCalculator } from '../distance/distanceCalculator';
import { PointContainer } from '../utils/pointContainer';
import { Palette } from '../utils/palette';
import { ImageQuantizerYieldValue } from './imageQuantizerYieldValue';
export declare class NearestColor extends AbstractImageQuantizer {
private _distance;
constructor(colorDistanceCalculator: AbstractDistanceCalculator);
/**
* Mutates pointContainer
*/
quantize(pointContainer: PointContainer, palette: Palette): IterableIterator<ImageQuantizerYieldValue>;
}
//# sourceMappingURL=nearestColor.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"nearestColor.d.ts","sourceRoot":"","sources":["../../../../src/image/nearestColor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,qBAAa,YAAa,SAAQ,sBAAsB;IACtD,OAAO,CAAC,SAAS,CAA6B;gBAElC,uBAAuB,EAAE,0BAA0B;IAK/D;;OAEG;IACF,QAAQ,CACP,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,GACf,gBAAgB,CAAC,wBAAwB,CAAC;CAyB9C"}
+42
View File
@@ -0,0 +1,42 @@
/**
* @preserve
* MIT License
*
* Copyright 2015-2018 Igor Bezkrovnyi
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*
* riemersma.ts - part of Image Quantization Library
*/
import { AbstractImageQuantizer } from './imageQuantizer';
import { AbstractDistanceCalculator } from '../distance/distanceCalculator';
import { PointContainer } from '../utils/pointContainer';
import { Palette } from '../utils/palette';
export declare class ErrorDiffusionRiemersma extends AbstractImageQuantizer {
private _distance;
private _weights;
private _errorQueueSize;
constructor(colorDistanceCalculator: AbstractDistanceCalculator, errorQueueSize?: number, errorPropagation?: number);
/**
* Mutates pointContainer
*/
quantize(pointContainer: PointContainer, palette: Palette): Generator<import("./imageQuantizerYieldValue").ImageQuantizerYieldValue, void, undefined>;
private static _createWeights;
}
//# sourceMappingURL=riemersma.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"riemersma.d.ts","sourceRoot":"","sources":["../../../../src/image/riemersma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,qBAAa,uBAAwB,SAAQ,sBAAsB;IACjE,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,eAAe,CAAS;gBAG9B,uBAAuB,EAAE,0BAA0B,EACnD,cAAc,SAAK,EACnB,gBAAgB,SAAI;IAWtB;;OAEG;IACF,QAAQ,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IA8D1D,OAAO,CAAC,MAAM,CAAC,cAAc;CAgB9B"}
@@ -0,0 +1,3 @@
import { ImageQuantizerYieldValue } from '../imageQuantizerYieldValue';
export declare function hilbertCurve(width: number, height: number, callback: (x: number, y: number) => void): Generator<ImageQuantizerYieldValue, void, undefined>;
//# sourceMappingURL=hilbertCurve.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"hilbertCurve.d.ts","sourceRoot":"","sources":["../../../../../src/image/spaceFillingCurves/hilbertCurve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAqBvE,wBAAiB,YAAY,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,wDAiBzC"}
+18
View File
@@ -0,0 +1,18 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
import * as constants from './constants';
import * as conversion from './conversion';
import * as distance from './distance';
import * as palette from './palette';
import * as image from './image';
import * as quality from './quality';
import * as utils from './utils';
export { buildPalette, buildPaletteSync, applyPalette, applyPaletteSync, } from './basicAPI';
export type { ImageQuantization, PaletteQuantization, ColorDistanceFormula, } from './basicAPI';
export { constants, conversion, distance, palette, image, quality, utils };
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC"}
+15
View File
@@ -0,0 +1,15 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
export { AbstractPaletteQuantizer } from './paletteQuantizer';
export { NeuQuant } from './neuquant/neuquant';
export { NeuQuantFloat } from './neuquant/neuquantFloat';
export { RGBQuant } from './rgbquant/rgbquant';
export { ColorHistogram } from './rgbquant/colorHistogram';
export { WuQuant, WuColorCube } from './wu/wuQuant';
export { PaletteQuantizerYieldValue } from './paletteQuantizerYieldValue';
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/palette/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
+66
View File
@@ -0,0 +1,66 @@
import { PointContainer } from '../../utils/pointContainer';
import { AbstractDistanceCalculator } from '../../distance/distanceCalculator';
import { AbstractPaletteQuantizer } from '../paletteQuantizer';
import { PaletteQuantizerYieldValue } from '../paletteQuantizerYieldValue';
export declare class NeuQuant extends AbstractPaletteQuantizer {
private static readonly _prime1;
private static readonly _prime2;
private static readonly _prime3;
private static readonly _prime4;
private static readonly _minpicturebytes;
private static readonly _nCycles;
private static readonly _initialBiasShift;
private static readonly _initialBias;
private static readonly _gammaShift;
private static readonly _betaShift;
private static readonly _beta;
private static readonly _betaGamma;
private static readonly _radiusBiasShift;
private static readonly _radiusBias;
private static readonly _radiusDecrease;
private static readonly _alphaBiasShift;
private static readonly _initAlpha;
private static readonly _radBiasShift;
private static readonly _radBias;
private static readonly _alphaRadBiasShift;
private static readonly _alphaRadBias;
private _pointArray;
private readonly _networkSize;
private _network;
/** sampling factor 1..30 */
private readonly _sampleFactor;
private _radPower;
private _freq;
private _bias;
private readonly _distance;
constructor(colorDistanceCalculator: AbstractDistanceCalculator, colors?: number);
sample(pointContainer: PointContainer): void;
quantize(): IterableIterator<PaletteQuantizerYieldValue>;
private _init;
/**
* Main Learning Loop
*/
private _learn;
private _buildPalette;
/**
* Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2)) in radpower[|i-j|]
*/
private _alterNeighbour;
/**
* Move neuron i towards biased (b,g,r) by factor alpha
*/
private _alterSingle;
/**
* Search for biased BGR values
* description:
* finds closest neuron (min dist) and updates freq
* finds best neuron (min dist-bias) and returns position
* for frequently chosen neurons, freq[i] is high and bias[i] is negative
* bias[i] = _gamma*((1/this._networkSize)-freq[i])
*
* Original distance equation:
* dist = abs(dR) + abs(dG) + abs(dB)
*/
private _contest;
}
//# sourceMappingURL=neuquant.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"neuquant.d.ts","sourceRoot":"","sources":["../../../../../src/palette/neuquant/neuquant.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAyD3E,qBAAa,QAAS,SAAQ,wBAAwB;IAKpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAG5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAO;IAGvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAG/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAmC;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IAKzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAgD;IAG7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CACsC;IAKxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAK;IAG7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAGrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAK7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAG7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAGnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACU;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAEzE,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAY;IAE5B,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,SAAS,CAAY;IAG7B,OAAO,CAAC,KAAK,CAAY;IAGzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGrD,uBAAuB,EAAE,0BAA0B,EACnD,MAAM,SAAM;IAgBd,MAAM,CAAC,cAAc,EAAE,cAAc;IAIpC,QAAQ,IAAI,gBAAgB,CAAC,0BAA0B,CAAC;IAWzD,OAAO,CAAC,KAAK;IAgBb;;OAEG;IACH,OAAO,CAAE,MAAM;IA2Ef,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ;CAkCjB"}
@@ -0,0 +1,66 @@
import { PointContainer } from '../../utils/pointContainer';
import { AbstractDistanceCalculator } from '../../distance/distanceCalculator';
import { AbstractPaletteQuantizer } from '../paletteQuantizer';
import { PaletteQuantizerYieldValue } from '../paletteQuantizerYieldValue';
export declare class NeuQuantFloat extends AbstractPaletteQuantizer {
private static readonly _prime1;
private static readonly _prime2;
private static readonly _prime3;
private static readonly _prime4;
private static readonly _minpicturebytes;
private static readonly _nCycles;
private static readonly _initialBiasShift;
private static readonly _initialBias;
private static readonly _gammaShift;
private static readonly _betaShift;
private static readonly _beta;
private static readonly _betaGamma;
private static readonly _radiusBiasShift;
private static readonly _radiusBias;
private static readonly _radiusDecrease;
private static readonly _alphaBiasShift;
private static readonly _initAlpha;
private static readonly _radBiasShift;
private static readonly _radBias;
private static readonly _alphaRadBiasShift;
private static readonly _alphaRadBias;
private _pointArray;
private readonly _networkSize;
private _network;
/** sampling factor 1..30 */
private readonly _sampleFactor;
private _radPower;
private _freq;
private _bias;
private readonly _distance;
constructor(colorDistanceCalculator: AbstractDistanceCalculator, colors?: number);
sample(pointContainer: PointContainer): void;
quantize(): Generator<PaletteQuantizerYieldValue, void, undefined>;
private _init;
/**
* Main Learning Loop
*/
private _learn;
private _buildPalette;
/**
* Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2)) in radpower[|i-j|]
*/
private _alterNeighbour;
/**
* Move neuron i towards biased (b,g,r) by factor alpha
*/
private _alterSingle;
/**
* Search for biased BGR values
* description:
* finds closest neuron (min dist) and updates freq
* finds best neuron (min dist-bias) and returns position
* for frequently chosen neurons, freq[i] is high and bias[i] is negative
* bias[i] = _gamma*((1/this._networkSize)-freq[i])
*
* Original distance equation:
* dist = abs(dR) + abs(dG) + abs(dB)
*/
private _contest;
}
//# sourceMappingURL=neuquantFloat.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"neuquantFloat.d.ts","sourceRoot":"","sources":["../../../../../src/palette/neuquant/neuquantFloat.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAsC3E,qBAAa,aAAc,SAAQ,wBAAwB;IAKzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAGjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAO;IAGvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAG/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAwC;IAC5E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IAKzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAC4B;IAGzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAEuB;IAKzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAK;IAG7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAG1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAK7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAG7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAGxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAK;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACoB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAyC;IAE9E,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAiB;IAEjC,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,SAAS,CAAY;IAG7B,OAAO,CAAC,KAAK,CAAY;IAGzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGrD,uBAAuB,EAAE,0BAA0B,EACnD,MAAM,SAAM;IAgBd,MAAM,CAAC,cAAc,EAAE,cAAc;IAIpC,QAAQ;IAUT,OAAO,CAAC,KAAK;IAgBb;;OAEG;IACH,OAAO,CAAE,MAAM;IA0Ef,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ;CAiCjB"}
+15
View File
@@ -0,0 +1,15 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* common.ts - part of Image Quantization Library
*/
import { PointContainer } from '../utils/pointContainer';
import { PaletteQuantizerYieldValue } from './paletteQuantizerYieldValue';
export declare abstract class AbstractPaletteQuantizer {
abstract sample(pointContainer: PointContainer): void;
abstract quantize(): IterableIterator<PaletteQuantizerYieldValue>;
quantizeSync(): import("../utils").Palette;
}
//# sourceMappingURL=paletteQuantizer.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"paletteQuantizer.d.ts","sourceRoot":"","sources":["../../../../src/palette/paletteQuantizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8BAAsB,wBAAwB;IAC5C,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IACrD,QAAQ,CAAC,QAAQ,IAAI,gBAAgB,CAAC,0BAA0B,CAAC;IAEjE,YAAY;CASb"}
@@ -0,0 +1,6 @@
import { Palette } from '../utils';
export interface PaletteQuantizerYieldValue {
progress: number;
palette?: Palette;
}
//# sourceMappingURL=paletteQuantizerYieldValue.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"paletteQuantizerYieldValue.d.ts","sourceRoot":"","sources":["../../../../src/palette/paletteQuantizerYieldValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,23 @@
import { PointContainer } from '../../utils/pointContainer';
export declare class ColorHistogram {
private static _boxSize;
private static _boxPixels;
private static _hueGroups;
private _method;
private _hueStats;
private _histogram;
private _initColors;
private _minHueCols;
constructor(method: number, colors: number);
sample(pointContainer: PointContainer): void;
getImportanceSortedColorsIDXI32(): number[];
private _colorStats1D;
private _colorStats2D;
private _iterateBox;
/**
* partitions a rectangle of width x height into
* array of boxes stepX x stepY (or less)
*/
private _makeBoxes;
}
//# sourceMappingURL=colorHistogram.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"colorHistogram.d.ts","sourceRoot":"","sources":["../../../../../src/palette/rgbquant/colorHistogram.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAU5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAY;IACnC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAK;IAC9B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAM;IAG/B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,SAAS,CAAgB;IAEjC,OAAO,CAAC,UAAU,CAA8B;IAGhD,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAmB1C,MAAM,CAAC,cAAc,EAAE,cAAc;IAWrC,+BAA+B;IA4C/B,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,WAAW;IAenB;;;OAGG;IACH,OAAO,CAAC,UAAU;CAyBnB"}
+16
View File
@@ -0,0 +1,16 @@
import { PointContainer } from '../../utils/pointContainer';
import { AbstractDistanceCalculator } from '../../distance/distanceCalculator';
import { AbstractPaletteQuantizer } from '../paletteQuantizer';
import { PaletteQuantizerYieldValue } from '../paletteQuantizerYieldValue';
export declare class RGBQuant extends AbstractPaletteQuantizer {
private readonly _colors;
private readonly _initialDistance;
private readonly _distanceIncrement;
private readonly _histogram;
private readonly _distance;
constructor(colorDistanceCalculator: AbstractDistanceCalculator, colors?: number, method?: number);
sample(image: PointContainer): void;
quantize(): Generator<PaletteQuantizerYieldValue, void, undefined>;
private _buildPalette;
}
//# sourceMappingURL=rgbquant.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"rgbquant.d.ts","sourceRoot":"","sources":["../../../../../src/palette/rgbquant/rgbquant.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAiB3E,qBAAa,QAAS,SAAQ,wBAAwB;IAEpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAGjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAG1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAG5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGrD,uBAAuB,EAAE,0BAA0B,EACnD,MAAM,SAAM,EACZ,MAAM,SAAI;IAeZ,MAAM,CAAC,KAAK,EAAE,cAAc;IAqB3B,QAAQ;IAUT,OAAO,CAAE,aAAa;CA8FvB"}
+79
View File
@@ -0,0 +1,79 @@
import { PointContainer } from '../../utils/pointContainer';
import { AbstractDistanceCalculator } from '../../distance/distanceCalculator';
import { AbstractPaletteQuantizer } from '../paletteQuantizer';
import { PaletteQuantizerYieldValue } from '../paletteQuantizerYieldValue';
export declare class WuColorCube {
redMinimum: number;
redMaximum: number;
greenMinimum: number;
greenMaximum: number;
blueMinimum: number;
blueMaximum: number;
volume: number;
alphaMinimum: number;
alphaMaximum: number;
}
export declare class WuQuant extends AbstractPaletteQuantizer {
private static readonly _alpha;
private static readonly _red;
private static readonly _green;
private static readonly _blue;
private _reds;
private _greens;
private _blues;
private _alphas;
private _sums;
private _weights;
private _momentsRed;
private _momentsGreen;
private _momentsBlue;
private _momentsAlpha;
private _moments;
private _table;
private _pixels;
private _cubes;
private _colors;
private _significantBitsPerChannel;
private _maxSideIndex;
private _alphaMaxSideIndex;
private _sideSize;
private _alphaSideSize;
private readonly _distance;
constructor(colorDistanceCalculator: AbstractDistanceCalculator, colors?: number, significantBitsPerChannel?: number);
sample(image: PointContainer): void;
quantize(): Generator<PaletteQuantizerYieldValue, void, undefined>;
private _preparePalette;
private _addColor;
/**
* Converts the histogram to a series of _moments.
*/
private _calculateMoments;
/**
* Computes the volume of the cube in a specific moment.
*/
private static _volumeFloat;
/**
* Computes the volume of the cube in a specific moment.
*/
private static _volume;
/**
* Splits the cube in given position][and color direction.
*/
private static _top;
/**
* Splits the cube in a given color direction at its minimum.
*/
private static _bottom;
/**
* Calculates statistical variance for a given cube.
*/
private _calculateVariance;
/**
* Finds the optimal (maximal) position for the cut.
*/
private _maximize;
private _cut;
private _initialize;
private _setQuality;
}
//# sourceMappingURL=wuQuant.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"wuQuant.d.ts","sourceRoot":"","sources":["../../../../../src/palette/wu/wuQuant.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AA2E3E,qBAAa,WAAW;IACtB,UAAU,EAAG,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC;IACpB,YAAY,EAAG,MAAM,CAAC;IACtB,YAAY,EAAG,MAAM,CAAC;IACtB,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IACrB,MAAM,EAAG,MAAM,CAAC;IAChB,YAAY,EAAG,MAAM,CAAC;IACtB,YAAY,EAAG,MAAM,CAAC;CACvB;AAED,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAK;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAK;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAK;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAK;IAElC,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAW;IAE1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,0BAA0B,CAAU;IAC5C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,cAAc,CAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGrD,uBAAuB,EAAE,0BAA0B,EACnD,MAAM,SAAM,EACZ,yBAAyB,SAAI;IAQ/B,MAAM,CAAC,KAAK,EAAE,cAAc;IAU3B,QAAQ;IA2BT,OAAO,CAAE,eAAe;IAiHxB,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACH,OAAO,CAAE,iBAAiB;IA2L1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAqD3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAItB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,IAAI;IA8HnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IA4HtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAwEjB,OAAO,CAAC,IAAI;IAmIZ,OAAO,CAAC,WAAW;IAoEnB,OAAO,CAAC,WAAW;CAQpB"}
+9
View File
@@ -0,0 +1,9 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
export { ssim } from './ssim';
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/quality/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
+10
View File
@@ -0,0 +1,10 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* ssim.ts - part of Image Quantization Library
*/
import { PointContainer } from '../utils/pointContainer';
export declare function ssim(image1: PointContainer, image2: PointContainer): number;
//# sourceMappingURL=ssim.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"ssim.d.ts","sourceRoot":"","sources":["../../../../src/quality/ssim.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQzD,wBAAgB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,UAqDlE"}
+8
View File
@@ -0,0 +1,8 @@
export declare function degrees2radians(n: number): number;
export declare function max3(a: number, b: number, c: number): number;
export declare function min3(a: number, b: number, c: number): number;
export declare function intInRange(value: number, low: number, high: number): number;
export declare function inRange0to255Rounded(n: number): number;
export declare function inRange0to255(n: number): number;
export declare function stableSort<T>(arrayToSort: T[], callback: (a: T, b: T) => number): T[];
//# sourceMappingURL=arithmetic.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../../src/utils/arithmetic.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAKnD;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAKnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAIlE;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,UAK7C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,UAItC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,WAAW,EAAE,CAAC,EAAE,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,OAsBjC"}
+11
View File
@@ -0,0 +1,11 @@
export declare class HueStatistics {
private _numGroups;
private _minCols;
private _stats;
private _groupsFull;
constructor(numGroups: number, minCols: number);
check(i32: number): void;
injectIntoDictionary(histG: Record<string, number>): void;
injectIntoArray(histG: string[]): void;
}
//# sourceMappingURL=hueStatistics.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"hueStatistics.d.ts","sourceRoot":"","sources":["../../../../src/utils/hueStatistics.ts"],"names":[],"mappings":"AAeA,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAEhB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAY9C,KAAK,CAAC,GAAG,EAAE,MAAM;IA6BjB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAclD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;CAWhC"}
+15
View File
@@ -0,0 +1,15 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
import * as arithmetic from './arithmetic';
import { HueStatistics } from './hueStatistics';
import { Palette } from './palette';
import { Point } from './point';
import { PointContainer } from './pointContainer';
import { ProgressTracker } from './progressTracker';
export { Point, PointContainer, Palette, HueStatistics, ProgressTracker, arithmetic, };
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,aAAa,EACb,eAAe,EACf,UAAU,GACX,CAAC"}
+25
View File
@@ -0,0 +1,25 @@
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* palette.ts - part of Image Quantization Library
*/
import { Point } from './point';
import { PointContainer } from './pointContainer';
import { AbstractDistanceCalculator } from '../distance/distanceCalculator';
export declare function hueGroup(hue: number, segmentsNumber: number): number;
export declare class Palette {
private readonly _pointContainer;
private readonly _pointArray;
private _i32idx;
constructor();
add(color: Point): void;
has(color: Point): boolean;
getNearestColor(colorDistanceCalculator: AbstractDistanceCalculator, color: Point): Point;
getPointContainer(): PointContainer;
private _nearestPointFromCache;
private _getNearestIndex;
sort(): void;
}
//# sourceMappingURL=palette.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../../../src/utils/palette.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAO5E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAS3D;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,OAAO,CAAiC;;IAQhD,GAAG,CAAC,KAAK,EAAE,KAAK;IAKhB,GAAG,CAAC,KAAK,EAAE,KAAK;IAShB,eAAe,CACb,uBAAuB,EAAE,0BAA0B,EACnD,KAAK,EAAE,KAAK;IAOd,iBAAiB;IAkCjB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAoFxB,IAAI;CAkCL"}
+29
View File
@@ -0,0 +1,29 @@
export interface PointRGBA {
r: number;
g: number;
b: number;
a: number;
}
/**
* v8 optimized class
* 1) "constructor" should have initialization with worst types
* 2) "set" should have |0 / >>> 0
*/
export declare class Point implements PointRGBA {
r: number;
g: number;
b: number;
a: number;
uint32: number;
rgba: number[];
static createByQuadruplet(quadruplet: number[]): Point;
static createByRGBA(red: number, green: number, blue: number, alpha: number): Point;
static createByUint32(uint32: number): Point;
constructor();
from(point: Point): void;
getLuminosity(useAlphaChannel: boolean): number;
private _loadUINT32;
private _loadRGBA;
private _loadQuadruplet;
}
//# sourceMappingURL=point.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../../src/utils/point.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,qBAAa,KAAM,YAAW,SAAS;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IAGf,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE;IAa9C,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAa3E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM;;IA2BpC,IAAI,CAAC,KAAK,EAAE,KAAK;IA0BjB,aAAa,CAAC,eAAe,EAAE,OAAO;IAsBtC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,eAAe;CAuBxB"}
+34
View File
@@ -0,0 +1,34 @@
/// <reference types="node" />
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* pointContainer.ts - part of Image Quantization Library
*/
import { Point } from './point';
/**
* v8 optimizations done.
* fromXXX methods are static to move out polymorphic code from class instance itself.
*/
export declare class PointContainer {
private readonly _pointArray;
private _width;
private _height;
constructor();
getWidth(): number;
getHeight(): number;
setWidth(width: number): void;
setHeight(height: number): void;
getPointArray(): Point[];
clone(): PointContainer;
toUint32Array(): Uint32Array;
toUint8Array(): Uint8Array;
static fromHTMLImageElement(img: HTMLImageElement): PointContainer;
static fromHTMLCanvasElement(canvas: HTMLCanvasElement): PointContainer;
static fromImageData(imageData: ImageData): PointContainer;
static fromUint8Array(uint8Array: number[] | Uint8Array | Uint8ClampedArray, width: number, height: number): PointContainer;
static fromUint32Array(uint32Array: Uint32Array, width: number, height: number): PointContainer;
static fromBuffer(buffer: Buffer, width: number, height: number): PointContainer;
}
//# sourceMappingURL=pointContainer.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"pointContainer.d.ts","sourceRoot":"","sources":["../../../../src/utils/pointContainer.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;;IAQxB,QAAQ;IAIR,SAAS;IAIT,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,aAAa;IAIb,KAAK;IAcL,aAAa;IAWb,YAAY;IAIZ,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,gBAAgB;IAcjD,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,iBAAiB;IAUtD,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS;IAOzC,MAAM,CAAC,cAAc,CACnB,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,iBAAiB,EACrD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;IAehB,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;IAchB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQhE"}
+11
View File
@@ -0,0 +1,11 @@
export declare class ProgressTracker {
static readonly steps = 100;
progress: number;
private _step;
private _range;
private _last;
private _progressRange;
constructor(valueRange: number, progressRange: number);
shouldNotify(current: number): boolean;
}
//# sourceMappingURL=progressTracker.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"progressTracker.d.ts","sourceRoot":"","sources":["../../../../src/utils/progressTracker.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAC1B,MAAM,CAAC,QAAQ,CAAC,KAAK,OAAO;IAE5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAS;gBAEnB,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAQrD,YAAY,CAAC,OAAO,EAAE,MAAM;CAY7B"}