1

Graphics32 类 TBitmap32 有一个画布,因此可以在 Canvas 上绘制的所有内容都可以在 TBitmap32 上绘制。我想创建自己的位图类,它既不是从 TBitmap 也不是 TBitmap32 派生的,并且还有一个 Canvas。我可以通过使用带有 Canvas 的 TBitmap 来伪造它,然后将像素复制到我的类中。但这很慢。

4

1 回答 1

1

Graphics32 有几个绘图“后端”可用。每个都有不同的优点和缺点。但是,主要与性能和内存消耗有关。

默认(对于 TBitmap32)是 TGDIBackend,它非常通用。这就是说,它继承了 GDI 的所有缺点。特别是 GDI 元素的数量是有限的,因此您不能拥有无限少的实例。

更好的选择是 TMemoryBackend,但仅此一项不能被绘制(“blitted”)到屏幕上(即任何 DC)。一个折衷方案是 TGDIMemoryBackend,它是一个能够在屏幕上绘制的 TMemoryBackend。但是,如果我没记错的话,它缺乏字体支持,但根据您的要求,这可能不是必需的。

于 2020-04-18T16:24:34.143 回答