itwmw / color-difference
颜色差异:Din99,CIE76,CIE1994,CIEDE2000,CMC l:c
v1.2.0
2022-01-15 06:23 UTC
Requires
- php: ^8.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-15 13:07:19 UTC
README
颜色差异
一个用于计算颜色感知差异(ΔE)的库。两种颜色之间的差异或距离是色彩科学中感兴趣的一个度量。它允许对以前只能用形容词描述的概念进行量化检查。对这些属性的量化对于那些色彩关键工作的人来说非常重要。常见的定义在设备无关的色彩空间中使用欧几里得距离。
支持以下测量
- 欧几里得
- 加权欧几里得
- DIN99 (2007)
- CIE76 (1976)
- CIE94 (1994)
- CIEDE2000 (2000)
- CMC l:c (1984)
所有计算都在L*a*b*或L*C*H*空间中进行(如度量所规定)。
快速入门
此库可在Packagist上找到,如下所示
composer require itwmw/color-difference
使用方法
颜色差异度量通过以下函数实现
- 欧几里得RGB
getDifferenceEuclideanRGB(Color $color): float
- 欧几里得Lab
getDifferenceEuclideanLab(Color $color): float
- 加权欧几里得RGB
getDifferenceWeightedEuclideanRGB(Color $color): float
- Din99
getDifferenceDin99(Color $color): float
- CIE76:
getDifferenceCIE76(Color $color): float
- CIE94:
getDifferenceCIE94(Color $color, CIE94 $type = CIE94::GraphicArts): float
- CIEDE2000:
getDifferenceCIEDE2000(Color $color): float
- CMC l:c:
getDifferenceCMC(Color $color, CMC $type = CMC::Imperceptibility): float
use Itwmw\ColorDifference\Color; use Itwmw\ColorDifference\Lib\RGB; use Itwmw\ColorDifference\Support\CIE94; use Itwmw\ColorDifference\Support\CMC; $color = new Color(new RGB(255, 183, 255)); $color2 = new Color(new RGB(55, 65, 53)); echo('Din99:' . $color->getDifferenceDin99($color2) . "\n"); echo('CIE76:' . $color->getDifferenceCIE76($color2) . "\n"); echo('CIE94-GraphicArts:' . $color->getDifferenceCIE94($color2, CIE94::GraphicArts) . "\n"); echo('CIE94-Textiles:' . $color->getDifferenceCIE94($color2, CIE94::Textiles) . "\n"); echo('CMC-Acceptability:' . $color->getDifferenceCMC($color2, CMC::Acceptability) . "\n"); echo('CMC-Imperceptibility:' . $color->getDifferenceCMC($color2, CMC::Imperceptibility) . "\n"); echo('CIEDE2000:' . $color->getDifferenceCIEDE2000($color2) . "\n"); echo('Euclidean RGB:' . $color->getDifferenceEuclideanRGB($color2) . "\n"); echo('Euclidean Lab:' . $color->getDifferenceEuclideanLab($color2) . "\n"); echo('Weighted Euclidean RGB:' . $color->getDifferenceWeightedEuclideanRGB($color2) . "\n");
CIE94和CMC l:c接受一个可选参数,用于调整评估的准度量。CIE94提供了应用类型选择,可以是'graphicArts'或'textiles',以符合其同名的使用。CMC l:c提供了阈值选择,可以是'acceptability'或'imperceptibility',以细微区分颜色之间的可察觉差异。
参考白
使用referenceWhite
为颜色类支持指定参考白
- A; //白炽灯/钨丝
- B; //中午的旧直射阳光
- C; //旧日光
- D50; //ICC配置文件PCS
- D55; //上午日光
- D65; //日光,sRGB,Adobe-RGB
- D75; //北天日光
- E; //等能量
- F1; //日光荧光灯
- F2; //冷荧光灯
- F3; //白荧光灯
- F4; //暖白荧光灯
- F5; //日光荧光灯
- F6; //浅白荧光灯
- F7; //日光荧光灯,D65模拟器
- F8; //西尔维亚F40,D50模拟器
- F9; //冷白荧光灯
- F10; //Ultralume 50,飞利浦TL85
- F11; //Ultralume 40,飞利浦TL84
- F12; //Ultralume 30,飞利浦TL83
new Color(new RGB(255, 183, 255), referenceWhite: ReferenceWhite::D65);
RGB工作空间
使用RGBSpace
为颜色类支持指定RGB工作空间
- Adobe RGB (1998)
- AppleRGB
- 最佳RGB
- Beta RGB
- Bruce RGB
- CIE RGB
- ColorMatch RGB
- Don RGB 4
- ECI RGB
- Ekta Space PS5
- NTSC RGB
- PAL/SECAM RGB
- ProPhoto RGB
- SMPTE-C RGB
- sRGB
- 宽色域RGB
new Color(new RGB(255, 183, 255), RGBSpace: RGBSpace::sRGB_D65);
通常,
RGB工作空间
需要与参考白
相匹配。
默认为
new Color(new RGB(255, 183, 255), referenceWhite: ReferenceWhite::D65, RGBSpace: RGBSpace::sRGB_D65);