BitmapLayer
我刚刚用这段代码在 a 中画了一条抗锯齿线:
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 通道为零意味着完全透明!
问:我的代码有问题吗?我在某个地方错了吗?