CSDN博客

img huyoo

DFB 和DIB的比较

发表于2004/7/1 18:37:00  2111人阅读

DFB 和DIB的比较
作者: Vladislav Gelfer
翻译: huyoo(空格键)2004-6-25 4:46
来源:http://www.codeproject.com/bitmap/DFB_vs_DIB.asp
译者按:我按照外文直译的,意思应该表述清楚了*_~

摘要:DFB和DIB之间的不同点

介绍
什么是位图(bitmap),什么又是设备无关位图(DIB)呢?它们二者之间有什么区别呢?为什么Windows API 有这样几个函数:CreateBitmap, CreateCompatibleBitmap, CreateDIBitmap和CreateDIBSection呢?函数SetBitmapBits 和 SetDIBits之间的区别又是什么呢?

老实说,在很长一段时间里面,我对这些问题是回答不出来的.我猜测我并不是仅有的一个回答不出这些问题的人.而所有这些问题得到完美解决,则是在我写出了自己的"内核模式视频驱动"之后^_^!

我相信所有使用GDI的程序员们,都应该了解或者知晓这些答案.

2D加速epopee(暂时不会翻译这个词)

什么是视频卡?显然,它是一种硬件,用来(译者注:暂时或长时间)存储一幅图像并把它传输到某种显示设备(显示器或者其他)上面去.这副图像是被存储在视频卡的internal内存(视频内存)中的,同时视频卡为显示器的cathode(译者注:可能是阴极的意思)ray射线的某种速率(刷新频率)产生一个信号.这是基本的常识;今天的视频卡举我们所知做的事情比这些多得多.

通常来讲,图像的大小是多少呢?它们会消耗掉多少资源呢?approximately来讲,一幅640x480的,一个象素占用8个bit比特的图像,将会占用300k的内存,800x600的16位图像则会占用937.5k内存(译者注:应该是视频卡内存),而以1024x768的24位/像素的图像来说,我们需要2.25Mb内存.这是非常多的!如果你想显示这样一幅图像,你必须以高于2Mb/秒的速率传输图像.假设现在你,想使这副图像产生动画(比如移动它).这个过程将会消耗大量的系统资源.另外,如果你想要对这副图像在屏幕上进行一些调整,你必须把它从视频内存中pull出来,alter它,然后upload it back.同时,考虑到绘图的复杂性(the drawing complexity)这样衣服图像的绘制解决(involves)了altering成百上千的像素,a significant payload for the CPU.

0 0

相关博文

我的热门文章

img
取 消
img