Q&A

  • HSL값을 어떻게 변환해야 명도를 구할수 있습니까???
  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값을 가지고 해야하걸랑요....
0  COMMENTS