Image322.Bitmap.Assign(Image321.Bitmap); 
  for i:= 0 to Image322.Bitmap.Width * Image322.Bitmap.Height -1 do 
  begin 
    R := RedComponent(Image322.Bitmap.Bits[i]); 
    G := GreenComponent(Image322.Bitmap.Bits[i]); 
    B := BlueComponent(Image322.Bitmap.Bits[i]); 
    if R > 255 then R := 255 else if R < 0 then R := 0; 
    if G > 255 then G := 255 else if G < 0 then G := 0; 
    if B > 255 then B := 255 else if B < 0 then B := 0; 
    RGBtoHSL( Color32(R, G, B), H, S, L ); 
    L2 := L *  TrackBar2.Position; 
    if L > 240 then 
        L2 := 240; 
    Image322.Bitmap.Bits[i] := HSLtoRGB(H, S, L2); 
  end; 
위의 로직에서 RGB값에서 HSL값을 구하였습니다. 그런데 
명도를 조절하기위해서  
L2 := L *  TrackBar2.Position; 이렇게 트랙바의 포지션값을 해주니 이상하게 되더군요... 
TrackBar2.Position 값이 -255 부터 255까지라구 한다면요,,,어떻게 값을 계산하여야 하나요??? 
답변부탁드립니다.
 
위의로직처럼 rgb값을 가지고 해야하걸랑요....