Конференция "Игры" » Блендинг [Delphi, Windows]
 
  • Валера (13.05.12 18:31) [0]
    Есть изображение 24 бита. С явным цветовым ключом.
    Как вывести его с прозрачностью через AlphaBlend, чтобы при это
    ключ убирался?
  • Sapersky (13.05.12 22:58) [1]
    Перевести в 32 бита, сгенерировать альфа-канал в соотв. с ключом.
  • Валера (14.05.12 01:19) [2]
    Можно пример?
  • Sapersky (14.05.12 13:16) [3]

    procedure ConvDIB(Src, Dst : TFastDIB; Trans : TFColor);
    Var x,y : Integer;
       sc : PFColor;
       dc : PFColorA;
       Trans32 : TFColorA;
    begin
    Dst.SetSize(Src.Width, Src.Height, 32);
    ClearB(Dst, 0);
    Trans32.c := Trans; Trans32.a := 0;

    For y:=0 to Dst.AbsHeight-1 do begin
     sc := Src.Scanlines[y]; dc := Dst.Scanlines[y];
     For x:=0 to Dst.Width-1 do begin
       dc.c := sc^;
       If (dc.i <> Trans32.i) then dc.a := 255
                              else dc.a := 0;
       Inc(sc); Inc(dc);
     end;
    end;
    MultiplyAlpha(Dst); // подготовка картинки для AlphaBlend
    end;

  • Валера (14.05.12 21:48) [4]
    Спасибо
 
Конференция "Игры" » Блендинг [Delphi, Windows]
Есть новые Нет новых   [134427   +38][b:0][p:0.001]