用EXCEL完成Lab颜色模型转RGB颜色模型

2025-10-22 15:12:00

1、打开EXCEL,(EXCEL需要启用宏,具体做法请百度),把LAB数据复制到表中,如图所示,第一列是L,第二列是A,第三列是B

用EXCEL完成Lab颜色模型转RGB颜色模型

2、按下ALT+F11,调出VBA编辑器

用EXCEL完成Lab颜色模型转RGB颜色模型

3、选中ThisWorkBook,把以下代码复制到编辑器中

Sub 宏1()

endrow = Cells.Find("*", Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row '计算最后一个工作表的非空行号

For i = 2 To endrow

Range("d1:G1") = Array("R", "G", "B", "显色")

ARR = LABtoRGB(Cells(i, 1), Cells(i, 2), Cells(i, 3))

  Cells(i, 4) = ARR(0)

  Cells(i, 5) = ARR(1)

  Cells(i, 6) = ARR(2)

  Cells(i, 7).Interior.Color = RGB(ARR(0), ARR(1), ARR(2))

Next

End Sub

Public Function LABtoRGB(l, a, b)

Dim fx, fy, fz, rr, gg, bb, r, g, B2 As Double

fy = ((l + 16) / 116) ^ 3

If fy < 0.008856 Then fy = l / 903.3

Y = fy

If fy > 0.008856 Then

    fy = fy ^ (1 / 3)

Else

    fy = 7.787 * fy + 16 / 116

End If

fx = a / 500 + fy

If fx > 0.206893 Then

    X = fx ^ 3

Else

    X = (fx - 16 / 116) / 7.787

End If

fz = fy - b / 200

If fz > 0.206893 Then

    Z = fz ^ 3

Else

    Z = (fz - 16 / 116) / 7.787

End If

X = X * (0.950456 * 255)

Y = Y * 255

Z = Z * (1.088754 * 255)

rr = 3.240479 * X - 1.53715 * Y - 0.498535 * Z

gg = -0.969256 * X + 1.875992 * Y + 0.041556 * Z

bb = 0.055648 * X - 0.204043 * Y + 1.057311 * Z

r = IIf(rr < 0, 0, IIf(rr > 255, 255, rr))

g = IIf(gg < 0, 0, IIf(gg > 255, 255, gg))

B2 = IIf(bb < 0, 0, IIf(bb > 255, 255, bb))

LABtoRGB = Array(r, g, B2)

End Function

用EXCEL完成Lab颜色模型转RGB颜色模型

4、回到表中,点击视图》查看宏》执行宏

用EXCEL完成Lab颜色模型转RGB颜色模型

5、结果完成

用EXCEL完成Lab颜色模型转RGB颜色模型

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢