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()
) によるものです。しかし、この色のアルファ チャネルがゼロであるということは、完全に透明であることを意味します。
Q: コードに問題はありますか? 私はどこか間違っていますか?