您的位置:首页 > 编程语言

请问Lab->RGB, RGB->LAB的颜色转化方法,以及代码,或者有什么参考书籍,谢谢

2008-08-25 09:51 411 查看
请问Lab->RGB, RGB->LAB的颜色转化方法,以及代码,或者有什么参考书籍,谢谢 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiMultimedia/html/delphi_2006121620555555.html

请问Lab->RGB, RGB->LAB的颜色转化方法,以及代码,或者有什么参考书籍,谢谢

请参考:
http://delphicikk.atw.hu/listaz.php?id=1452&oldal=22
谢谢!
但编译时发生错误,在

[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)

我这里测试没有任何问题的。

uses uLabRgb;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
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;

const
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;

我这里没有任何编译错误啊。

[Error] uLabRgb.pas(175): Left side cannot be assigned to

------------------

这个错误一般是指左边被赋值的变量的读写属性为只读, 但这里应该没有这种情况。

const
RgbXyz: TMatrix3 = ((1, 0, 0), (0, 1, 0), (0, 0, 1));
XyzRgb: TMatrix3 = ((1, 0, 0), (0, 1, 0), (0, 0, 1));

并不是真正意义上的const, 所以对它们赋值是没有问题的。

发了三次,不能再发只好要马甲顶一下

假一个编译指示器

unit uLabRgb;

interface

type
TVector3 = array[1..3] of Double;

function LabToRgb(Lab: TVector3): TVector3;
function RgbToLab(Rgb: TVector3): TVector3;

implementation

{$J+} //注意

................

搞定了,感谢!

LabToRGB后的值都是很小的,显示出来的都是黑色吗
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐