Excel模块 - RGB到XYZ颜色

时间:2017-06-13 12:00:45

标签: excel vba excel-vba

我正在尝试在Excel中创建一个模块,允许我使用EasyRGB(http://www.easyrgb.com/en/math.php)中的以下“中性编程功能”将RGB颜色转换为XYZ:

var_R = ( sR / 255 )
var_G = ( sG / 255 )
var_B = ( sB / 255 )

if ( var_R > 0.04045 ) var_R = ( ( var_R + 0.055 ) / 1.055 ) ^ 2.4
else                   var_R = var_R / 12.92
if ( var_G > 0.04045 ) var_G = ( ( var_G + 0.055 ) / 1.055 ) ^ 2.4
else                   var_G = var_G / 12.92
if ( var_B > 0.04045 ) var_B = ( ( var_B + 0.055 ) / 1.055 ) ^ 2.4
else                   var_B = var_B / 12.92

var_R = var_R * 100
var_G = var_G * 100
var_B = var_B * 100

X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805
Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722
Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505

问题在于我对VBA不够熟悉,不能让它作为excel模块/公式工作。它将从每行的单元B到D获取sR,sG和sB值(例如,行1-sR = B3,sG = C3和sB = D3)。执行上述计算,然后输出XYZ值。

然后我希望X,Y,Z值在它们自己的单元格中输出与原始RGB值相同的行(例如,行1 - X = I3,Y = J3和Z = K3)。

0 个答案:

没有答案