请问Lab->RGB, RGB->LAB的颜色转化方法,以及代码,或者有什么参考书籍,谢谢
解决方案 »
- delphi7 中reportbuilder中 简单问题 散分
- delphi Image画面点击停止后 如何清除该图像 然后在本页面显示另外一个图像?如何用代码来实现?
- 关于as的用法?
- 如何设置excelworksheet.cell[1,2]的内容文本居左或居右,居中的处理?
- 热键问题(Shift+Ctrl+Alt+Del)
- 过程怎么用的?
- 关于Express系列界面控件
- 散分寻书
- 满分送上 谁能帮我解决 如何实现当dbcheckbox选中时 ,dbgrid中相对应的行也同时被选中?如何用一个按扭(button)实现全选?急!!!!!!!!!
- 怎么就是调不出来了?
- delphi的IDE(编译环境)不如VB
- 请问该如何卸载窗体中动态加载的控件?
但编译时发生错误,在[Error] uLabRgb.pas(175): Left side cannot be assigned to
[Fatal Error] ColorConvert.dpr(6): Could not compile used unit 'uLabRgb.pas'在最后一节
for I := 1 to 3 do
for J := 1 to 3 do
RgbXyz[I, J]:=CToXyz[I, J] * C[J];
XyzRgb := InvertMatrix3(RgbXyz)
var
RGB: TVector3;
LAB: TVector3;
begin
RGB[1] := 255;
RGB[2] := 125;
RGB[3] := 233;
LAB := RGBTOLAB(RGB);
Caption := FloatToStr(LAB[1])+':'+FloatToStr(LAB[2])+':'+FloatToStr(LAB[3]);
end;
RgbXyz: TMatrix3 = ((1, 0, 0), (0, 1, 0), (0, 0, 1));
XyzRgb: TMatrix3 = ((1, 0, 0), (0, 1, 0), (0, 0, 1));....procedure InitTransformationMatrices;
var
I: Integer;
J: Integer;
PhosphorZ: TVector3;
C: TVector3;
CToXyz: TMatrix3;
XyzToC: TMatrix3;
begin
for I := 1 to 3 do
begin
CToXyz[1, I] := PhosphorX[I];
CToXyz[2, I] := PhosphorY[I];
CToXyz[3, I] := 1 - PhosphorX[I] - PhosphorY[I]
end;
XyzToC := InvertMatrix3(CToXyz);
C := MultiplyMatrix3ByVector3(XyzToC, WhitePoint);
for I := 1 to 3 do
for J := 1 to 3 do
RgbXyz[I, J]:=CToXyz[I, J] * C[J]; //发生编译错误
XyzRgb := InvertMatrix3(RgbXyz) //发生编译错误
end;
RgbXyz: TMatrix3 = ((1, 0, 0), (0, 1, 0), (0, 0, 1));
XyzRgb: TMatrix3 = ((1, 0, 0), (0, 1, 0), (0, 0, 1));并不是真正意义上的const, 所以对它们赋值是没有问题的。
TVector3 = array[1..3] of Double;function LabToRgb(Lab: TVector3): TVector3;
function RgbToLab(Rgb: TVector3): TVector3;implementation{$J+} //注意................