BGRABitmap图像操作5(使用层、遮罩)



【BGRABitmap图像操作5(使用层、遮罩)】BGRABitmap图像操作5(使用层、遮罩)
文章图片





unit Unit1; {$mode objfpc}{$H+}interfaceuses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, BGRABitmap, BGRABitmapTypes; type{ TForm1 }TForm1 = class(TForm) procedure FormPaint(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation{$R *.lfm}{ TForm1 }procedure TForm1.FormPaint(Sender: TObject); var temp,tex,mask: TBGRABitmap; begin temp:= TBGRABitmap.Create(640,480,ColorToBGRA(ColorToRGB(clBtnFace))); //loading and scaling texture tex := TBGRABitmap.Create('3333.jpg'); BGRAReplace(tex,tex.Resample(128,80)); //show image in the upper-left corner temp.PutImage(10,10,tex,dmDrawWithTransparency); //create a mask with ellipse and rectangle mask := TBGRABitmap.Create(128,80,BGRABlack); mask.FillEllipseAntialias(40,40,30,30,BGRAWhite); mask.FillRectAntialias(60,40,100,70,BGRAWhite); //show mask in the upper-right corner temp.PutImage(150,10,mask,dmDrawWithTransparency); //apply the mask to the image tex.ApplyMask(mask); //show the result image in the lower-left corner temp.PutImage(10,100,tex,dmDrawWithTransparency); mask.Free; tex.Free; //show everything on the screen temp.Draw(Canvas,0,0,True); temp.Free; end; end.



    推荐阅读