首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows :位图的模式刷和BitBlt之间的区别

Windows :位图的模式刷和BitBlt之间的区别
EN

Stack Overflow用户
提问于 2018-06-14 16:57:21
回答 1查看 436关注 0票数 0

用Bitmap创建GDI模式刷,然后用该刷子填充rect与直接从设备独立位图中闪动之间有功能上的区别吗?

为了澄清我所说的第一个场景是使用位图创建模式刷,然后使用PATCOPY将整个屏幕填充为patblt。我的意思是,使用bitblit从源位图中直接闪动看起来要有效得多,但我不确定它们在功能上是否相同(对于Windows来说是非常新的,如果这有点模糊或难以理解)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 18:47:23

方法1:创建一个模式刷,将其选中到DC中,并将PatBlt与PATCOPY结合使用

方法2:在内存DC中选择一个DIB部分并使用BitBlt。

这些方法的主要区别是:

  • 如果目标矩形大于源,则方法1将为您平铺图像。使用方法2,您必须重复调用BitBlt。
  • 使用方法2,您必须创建和管理一个内存DC。

就性能而言,在Windows的现代版本中,它们可能大致相同。DIB颜色到目标颜色格式的映射在DC中被选中时只发生一次。如果在卡上有足够的内存,图像就应该在图形总线上传输一次。这两种方法可能都有针对特殊情况的优化路径。

使用PatBlt,您可以重新使用单色图案刷并设置不同的颜色,只需更改DC中的文本和背景色即可。使用BitBlt,您必须首先更新内存DC中的位图。

如果我没记错的话,在过去的日子里,图案刷的大小被限制在非常小的东西上(比如孵化刷)。图案刷通常是单色的(每像素1位),通过设置文本和背景色并快速地用PatBlt贴图来填充背景。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50862516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档