求代码,我有HSL转RGB代码 可是不会调用!!!
这是以前别人写的代码:procedure RGBtoHSL(R, G, B: Integer; var H, S, L: Integer);
// RGB空间到HSL空间的转换
var
Delta: Double;
CMax, CMin: Double;
Red, Green, Blue, Hue, Sat, Lum: Double;
begin
Red := R / 255;
Green := G / 255;
Blue := B / 255;
CMax := Max(Red, Max(Green, Blue));
CMin := Min(Red, Min(Green, Blue));
Lum := (CMax + CMin) / 2;
if CMax = CMin then
begin
Sat := 0;
Hue := 0;
end
else
begin
if Lum < 0.5 then
Sat := (CMax - CMin) / (CMax + CMin)
else
Sat := (cmax - cmin) / (2 - cmax - cmin);
delta := CMax - CMin;
if Red = CMax then
Hue := (Green - Blue) / Delta
else if Green = CMax then
Hue := 2 + (Blue - Red) / Delta
else
Hue := 4.0 + (Red - Green) / Delta;
Hue := Hue / 6;
if Hue < 0 then
Hue := Hue + 1;
end;
H := Round(Hue * 360);
S := Round(Sat * 100);
L := Round(Lum * 100);
end;我要调用它在一个timage控件里面显示出来转换成的HSL格式图片,不会用 谢谢!
这是以前别人写的代码:procedure RGBtoHSL(R, G, B: Integer; var H, S, L: Integer);
// RGB空间到HSL空间的转换
var
Delta: Double;
CMax, CMin: Double;
Red, Green, Blue, Hue, Sat, Lum: Double;
begin
Red := R / 255;
Green := G / 255;
Blue := B / 255;
CMax := Max(Red, Max(Green, Blue));
CMin := Min(Red, Min(Green, Blue));
Lum := (CMax + CMin) / 2;
if CMax = CMin then
begin
Sat := 0;
Hue := 0;
end
else
begin
if Lum < 0.5 then
Sat := (CMax - CMin) / (CMax + CMin)
else
Sat := (cmax - cmin) / (2 - cmax - cmin);
delta := CMax - CMin;
if Red = CMax then
Hue := (Green - Blue) / Delta
else if Green = CMax then
Hue := 2 + (Blue - Red) / Delta
else
Hue := 4.0 + (Red - Green) / Delta;
Hue := Hue / 6;
if Hue < 0 then
Hue := Hue + 1;
end;
H := Round(Hue * 360);
S := Round(Sat * 100);
L := Round(Lum * 100);
end;我要调用它在一个timage控件里面显示出来转换成的HSL格式图片,不会用 谢谢!
解决方案 »
- 求助cxGridCardView的基础使用问题,急...
- 点击按钮两次弹出两个窗口,关掉一个在关掉第二个是出错,请高手赐教。
- ~~最后可用的35分了~问一个关于记录循环判断的问题~!!
- 问大家一个登陆框制作的问题
- Case Integer of的Integer是什么意思?
- 如何把一个16进制的文件转换成10进制文件
- 如何使TreeView中的文字类似网页中的超连接?
- 紧急求救!C/S三层结构连接应用程序服务器的问题...
- 还是画图的问题
- 我在server 2000编的程序,怎么在98下用不成?(是数据库程序我用的是ADO)
- delphi是否能够捕获所有的事件
- 怎么样用ADOTable读取数据库最新的记录
HSL貌似单个分量的范围是0~1,那么你用这个值乘以256,然后去尾,再把RGB均设置成这个数值,会变成一个灰度的图像。
H分量的范围是0-240吧 我想利用饱和度来改变图像的色泽啊 HSL比RGB处理图像要来的好
处理前转换成HSL,处理完了再转成RGB显示就行了。