我只是使用以下代码在BitmapLayer
中绘制一条反锯齿线:
procedure TForm4.Button1Click(Sender: TObject);
var
BL: TBitmapLayer;
begin
BL:= TBitmapLayer.Create(ImgView.Layers);
LayerPos:= Point(100, 100);
CanvasWidth:= 100;
CanvasHeight:= 100;
BL.Location:= FloatRect(
LayerPos.X,
LayerPos.Y,
LayerPos.X + CanvasWidth ,
LayerPos.Y + CanvasHeight
);
with BL.Bitmap do
begin
SetSize(CanvasWidth, CanvasHeight);
DrawMode:= dmBlend;
Clear($0000FF00);
LineAS(0, 0, 100, 80, clBlack32);
end
end;
正如您在下面的结果中看到的那样,线条透明度像素具有一些绿色值。这是因为$0000FF00
(在Clear()
中使用)。但是这种颜色的alpha通道是零意味着完全透明!
答案 0 :(得分:0)
行。我找到了。我必须使用CombineMode:= cmMerge;
with BL.Bitmap do
begin
//...
CombineMode:= cmMerge;
DrawMode:= dmBlend;
//...
end