最近,我在这个页面上看到了一个答案,并使用该代码制作了一个Adobe Illustrator脚本来计算对比度比率。
这里是结果:
http://screencast.com/t/utT481Ut。
该脚本中的某些速记符号对我来说很困惑,并且在Adobe Extend Script中无法工作。因此,我认为分享我对kirilloid分享的代码的改进/解释会很好。
function luminance(r, g, b) {
var colorArray = [r, g, b];
var colorFactor;
var i;
for (i = 0; i < colorArray.length; i++) {
colorFactor = colorArray[i] / 255;
if (colorFactor <= 0.03928) {
colorFactor = colorFactor / 12.92;
} else {
colorFactor = Math.pow(((colorFactor + 0.055) / 1.055), 2.4);
}
colorArray[i] = colorFactor;
}
return (colorArray[0] * 0.2126 + colorArray[1] * 0.7152 + colorArray[2] * 0.0722) + 0.05;
}
当然,您需要调用此函数。在for循环中,我从我的illustrator对象获取所有颜色。
var selection = app.activeDocument.selection;
for (i = 0; i < selection.length; i++) {
red[i] = selection[i].fillColor.red;
}
var foreGround = luminance(red[0], green[0], blue[0]);
var background = luminance(red[1], green[1], blue[1]);
luminanceValue = foreGround / background;
luminanceValue = round(luminanceValue, 2);
function round(number, decimals) {
return +(Math.round(number + "e+" + decimals) + "e-" + decimals);
}
对比度比率的更多信息:http://webaim.org/resources/contrastchecker/