Нашел функцию BlendFunc для блендинга 24-битный изображений,
но они должны быть одного размера.
Подскажите как написать фукцию с телом Blit? (Думаю параметры ясны)
З.Ы. Windows.AlphaBlend не хочу использовать.
type
PRGB = ^TRGB;
TRGB = record
R, G, B: byte;
end;
procedure BlendFunc(Bmp1, Bmp2: TBitmap; Alpha: byte);
var
i : LongWord;
P1, P2: PRGB;
begin
P1:= Bmp1.Scanline[Bmp1.Height - 1];
P2:= Bmp2.Scanline[Bmp2.Height - 1];
For i:= 0 to (Bmp1.Height * Bmp1.Width - 1) do
begin
P1.R:= (P1.R * (255 - Alpha) + P2.R * Alpha) shr 8;
P1.G:= (P1.G * (255 - Alpha) + P2.G * Alpha) shr 8;
P1.B:= (P1.B * (255 - Alpha) + P2.B * Alpha) shr 8;
Inc(P1);
Inc(P2);
end;
end;
procedure Blit(X, Y: LongInt;
Dest,
Src: TBitmap;
Alpha: byte);
var
i : LongWord;
P1, P2: PRGB;
begin
end;