读书人

一个图形叠加的有关问题

发布时间: 2012-03-29 12:53:12 作者: rapoo

一个图形叠加的问题
要在程序中实现
在一张底图上叠加多个小图象。比如在地图上标注 五角星 类似的小图象或者小图标



[解决办法]
Tcanvas.draw()
Tcanvas.copyrect()

bitblt()

等等都可以实现。
[解决办法]
procedure DrawTranImage(DestCanvas: TCanvas; LeftPos: Integer; TopPos: Integer;
SourceImg: TBitmap; MaskImg: TBitmap); //绘制透明图像
var
OldCopyMode : LongInt; //原来的CopyMode设置值
begin
//DestCanvas:目标画布 SourceImg:原始图像 MaskImg:和原始图像配套的掩模
with DestCanvas do
begin
OldCopyMode := CopyMode; //保存原始的CopyMode设置
CopyMode := cmSrcAnd ; //将复制模式改为AND
Draw(LeftPos,TopPos,MaskImg); //绘制遮罩
CopyMode := cmSrcPaint; //将复制模式改为OR
Draw(LeftPos,TopPos,SourceImg); //绘制图象
CopyMode := OldCopyMode; //恢复原始的CopyMode设置
end;
end;

读书人网 >.NET

热点推荐