BitBlt某些情况下比StretchBlt慢很多

BitBlt ,StretchBlt 都是 GDI32 提供的画屏函数,一般情况下,这两个函数应该是一致的。可是
我在测试抓屏操作的时候,却发现 BitBlt某些情况下比StretchBlt慢很多,估计和显卡有关。

测试环境:
操作系统 : Windows 2000 CHS  Sp4

硬件配置:
公司的电脑: P4 2.4G 板自带显卡(intel 芯片的显卡)
家里的电脑: 赛扬1G,GF400 显卡(64M显存)

测试代码:

代码主要是 进行 60帧 抓屏操作,并利用 intel jpeg Lib 转换为 jpg Byte()
显示操作耗时。

http://www.federal.net.cn/testpic.rar  (VB6)

请编译后运行

公司电脑上测试结果:

  桌面色彩 BitBlt StretchBlt
公司电脑 1024*768 16bits 25.47秒 2.2秒
家里电脑 1024*768 16bits 7.03秒 4.31秒
公司电脑 1024*768 8bits(256色) 25秒 48秒
家里电脑 1024*768 8bits(256色) 45.3秒 4.51秒

结论
32bits 和 16bits 结果接近,所以没有测试
可以看出:StretchBlt  一般下都比 BitBlt 要快的多
而在 256 色下的性能反倒不如 16位色
有显卡使用 StretchBlt 可能可以使用硬件加速,而在256色下硬件加速失效

你可能感兴趣的:(windows,测试,vb,byte)