【问题标题】:How to draw on TCanvas with performance?如何在 TCanvas 上绘制性能?
【发布时间】:2011-04-25 13:18:11
【问题描述】:

我使用了一个名为 TatukGis 的地图组件,我需要在地图上绘制一些其他信息,它基本上使用 TCanvas 来绘制地图。 我正在使用 Pixels 创建我想要的 alpha 混合效果,但它非常慢,似乎每次操作都会刷新画布。有人可以给出一些提示,如何以正确的方式使用 TCanvas 快速绘制东西?

Tks

【问题讨论】:

标签: delphi


【解决方案1】:

首先写入位图(如果需要像素访问,请使用 ScanLine),然后将位图绘制到画布(CopyRect)。

【讨论】:

  • 或 StretchBlt,尽管名称实际上可能比 copyrect 快。
  • 或者BitBlt如果你不需要拉伸。
  • BitBlt(通常?)比 StretchBlt 快。只要您的位图是 1:1。
  • 或 msimg32.dll 中的 TranslateBlt。不兼容win95,但iirc曾经比bitblt更快,但功能更少
  • StretchBlt=BitBlt 当不需要拉伸时
猜你喜欢
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 2012-05-01
  • 2020-08-02
  • 2015-09-05
  • 2021-01-12
相关资源
最近更新 更多