Конференция "Media" » Библиотека Graphics32 [D7, WinXP]
 
  • sssyura © (09.07.12 19:26) [0]
    Если ли в библиотеке Graphics32 функции/методы регулировки яркости/контрастности изображения?
  • Омлет © (09.07.12 20:52) [1]
    ApplyLUT
  • sssyura © (09.07.12 22:15) [2]
    Омлет, а примеров у Вас нету?
  • Омлет © (09.07.12 22:33) [3]
    Ну как-то так:

    procedure AddBrightness(Dst, Src: TBitmap32; Value: Shortint);
    var
     i: integer;
     LUT: TLUT8;
    begin
     for i := low(LUT) to high(LUT) do
       LUT[i] := Min(0, Max(255, i + Value));
     ApplyLUT(Dst, Src, LUT);
    end;
  • Омлет © (09.07.12 22:34) [4]
    Наоборот:

       LUT[i] := Max(0, Min(255, i + Value));

  • sssyura © (10.07.12 09:47) [5]
    Омлет, спасибо!
    Как быть с контрастом?
  • Омлет © (10.07.12 10:47) [6]
    > Как быть с контрастом?

    Если по-простому, то, наверное, как-то так:

    procedure AddContrast(Dst, Src: TBitmap32; Value: Shortint);
    var
     i: integer;
     LUT: TLUT8;
     d: extended;
    begin
     if Value > 0 then
       d := 1 + (Value / 10)
     else
       d := 1 - (Sqrt(-Value) / 10);

     for i := low(LUT) to high(LUT) do
       LUT[i] := Max(0, Min(255, 128 + Trunc((i - 128) * d) ));

     ApplyLUT(Dst, Src, LUT);
    end;

  • scharkhowa (13.11.13 15:30) [7]
    http://altima-sign.ru/
    procedure AddContrast(Dst, Src: TBitmap32; Value: Shortint);
    var
    i: integer;
    LUT: TLUT8;
    d: extended;
    begin
    if Value > 0 then
      d := 1 + (Value / 10)
    else
      d := 1 - (Sqrt(-Value) / 10);

    for i := low(LUT) to high(LUT) do
      LUT[i] := Max(0, Min(255, 128 + Trunc((i - 128) * d) ));

    ApplyLUT(Dst, Src, LUT);
    end;

    Как то так?
 
Конференция "Media" » Библиотека Graphics32 [D7, WinXP]
Есть новые Нет новых   [134427   +37][b:0][p:0.002]