Модератор: Модераторы

Лекс Айрин писал(а):tBitmap

// Прозрачность + прозрачный цвет 
{Src1,Src2,Dst - понятно
 CT -прозрачный цвет
 Amount - 0.001-1.0 - реальное смешение  }
procedure Blend2(Const Src1,Src2,Dst: TBitmap; CT: Integer;Amount: extended);
var w,h,x,y:integer;
    ps1,ps2,pd:pbytearray;
begin
w:=Src1.Width;
h:=Src1.Height;
//Dst.Width:=w;
//Dst.Height:=h;
//Src1.PixelFormat:=pf24bit;
//Src2.PixelFormat:=pf24bit;
//Dst.PixelFormat:=pf24bit;
for y:=0 to h-1 do begin
 ps1:=Src1.ScanLine[y];
 ps2:=Src2.ScanLine[y];
 Dst.BeginUpdate; ;
 pd:=Dst.ScanLine[y];
 for x:=0 to w-1 do
 If RGB(ps2[x*3+2],ps2[x*3+1],ps2[x*3])<>CT then
 begin
 If Amount<>1 then begin
  pd[x*3]  :=round((1-Amount)*ps1[x*3]+Amount*ps2[x*3]);
  pd[x*3+1]:=round((1-Amount)*ps1[x*3+1]+Amount*ps2[x*3+1]);
  pd[x*3+2]:=round((1-Amount)*ps1[x*3+2]+Amount*ps2[x*3+2]);
  end else Move(ps2[x*3], pd[x*3],3);
  end else Move(ps1[x*3], pd[x*3],3);
 Dst.EndUpdate;
 end;
end;

RedCat писал(а):Alex2013 спасибо, но кажется что Лазарь рисует текст с антиалиасингом, т.е. по цвету прозрачность не удается сделать
 ) текст (с "черным фоном" )  на черном битмапе . И накладываешь его на свою картинку ("Прозрачный цвет" черный ...  )  И как-бы там и лазарус  и вида  не изощрялись  тебе "по барабану".
 ) текст (с "черным фоном" )  на черном битмапе . И накладываешь его на свою картинку ("Прозрачный цвет" черный ...  )  И как-бы там и лазарус  и вида  не изощрялись  тебе "по барабану".   
procedure TForm1.FormCreate(Sender: TObject);
Var B,B1:TBitmap;
begin
 B:=TBitmap.Create; b.PixelFormat:=pf24bit;
 B1:=TBitmap.Create;b1.PixelFormat:=pf24bit;
 B1.SetSize(Image1.Width,Image1.Height);
 b1.Canvas.Draw(0,0,Image1.Picture.Bitmap); //Draw Конвертирует цвета pf32bit -> pf24bit; 
 b.Canvas.Brush.Color:=clBlack; B.SetSize(Image1.Width,Image1.Height);
// при  SetSize автоматом закрашивает черным. 
 B.Canvas.Font.Color:=ClWhite;
 B.Canvas.TextOut(10,10,'Привет аборигенам...' );
 Blend2(b1,b,B1,clBlack,1);
 Image1.Picture.Bitmap.Assign(B1);
 b.free; b1.free;
end;


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1