请问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后的值都是很小的,显示出来的都是黑色吗
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后的值都是很小的,显示出来的都是黑色吗
相关文章推荐
- android在代码中四种设置控件(以及TextView的文字颜色)背景颜色的方法
- RGB颜色空间与Lab颜色空间区别与联系(附转换代码)
- android在代码中四种设置控件背景颜色的方法(包括RGB)
- 各种颜色的英文表述,以及RGB代码
- 1、connect方法会阻塞,请问有什么方法可以避免其长时间阻塞? 答:最通常的方法最有效的是加定时器;也可以采用非阻塞模式。 2、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道? 答
- android在代码中四种设置控件(以及TextView的文字颜色)背景颜色的方法
- eclipse的设置代码字体大小、同变量或者方法被双击后显示颜色、每行显示代码字数
- RGB颜色表示方法,red = (rgb & 0x00ff0000) >> 16是什么意思?
- android在代码中四种设置控件背景颜色的方法(包括RGB)
- 请问有没有什么方法将dmp文件导入到指定的表空间去?或者怎样改变数据库所有表所在的表空间
- java POI导出excel(带有图片的数据)以及ftp上传图片到另一台服务器的方法参考代码
- xcode 代码颜色高亮,智能提示的问题以及解决方法
- 菜鸟:自己写了一个轮播代码供分为参考,如果有什么地方你有更好的方法,可以给我留言
- android在代码中四种设置控件(以及TextView的文字颜色)背景颜色的方法
- 选中本页面所有复选框,不管叫什么名字,有没有这个方法或者代码啊
- android在代码中四种设置控件背景颜色的方法(包含RGB)
- MVC操作LocalDB数据库,通过电影类型和名称来查询电影,在控制器里写的方法以及页面代码,自己参考。
- 选中本页面所有复选框,不管叫什么名字,有没有这个方法或者代码
- js方法实现rgb颜色转换成16进制格式的代码的方法
- android在代码中四种设置控件背景颜色的方法(包括RGB)