您的位置:首页 > 编程语言 > Delphi

Delphi GDI对象之脱屏位图(Offscreen Bitmaps),也叫内存位图

2016-01-30 11:44 405 查看


脱屏位图(Offscreen Bitmaps)

脱屏位图,也叫内存位图,普遍用于Windows程序设计中。它在内存中制作图像,然后利用Draw方法在屏幕上显示出来。当用户想更快的在屏幕上绘制图像时,脱屏位图有助于避免闪烁。脱屏位图也适合于复杂制图程序。用户可以将图像预存起来,需要时显示出来。脱屏位图用于动画,最流行的动画制作方法是Microsoft的DirectX SDK。

脱屏位图的原则是三个简单的步骤:

建立内存位图(Create a memory bitmap)

绘制内存位图(Draw on the memory bitmap)

拷贝内存位图于屏幕(Copy the memory bitmap to the screen)

创建内存位图(Creating a Memory Bitmap)

创建内存位图很容易。事实上,前面的讲解中已经创建过好几次了。每次创建TBitmap对象时就是在创建内存位图,其中一些是将文件载入内存位图中,还有一些是创建内存位图,设置其大小,然后绘制内存位图,例如:

每次点击按钮,随意一串矩形框画于屏幕上。这段代码简单地绘制内存位图,然后将位图拷贝到窗体画面上。





如果使用桌面256色设置,最终运行的结果的颜色将不确定。


Note

当创建内存位图时,位图将具有与当前显示设置相同的颜色深度。换句话说,若有256种颜色的显示设置,内存位图也是256色的位图,如果显示设置为24位或32位,则内存位图将包含32K、64K或16M种颜色。



保存内存位图(Saving a Memory Bitmap)

将内存位图保存起来极其容易。它所需要的做的就是一下代码:

是的,这样就可以。事实上可以很容易地创建自己的屏幕捕捉程序。所要做的只是将桌面的适当部分拷贝到内存位图中,并存储到文件中。如下代码:

运行后,将截取本程序界面并保存到form.bmp文件中,显示图片如下:





内存位图程序实例(Sample Memory Bitmap Program)

下面的清单中的程序,它说明内存位图的应用。当点击两个按钮中的某一个时,文本沿着屏幕水平滚动。

第一个按钮的实现,不使用内存位图(直接写于窗体画面上)。

第二个按钮使用内存位图来实现文本屏幕水平滚动。

第三个按钮停止滚动。

部分代码如下(详细代码请下载本讲示例代码):

两种不同的画图方式,显示的效果也不同,其中通过脱屏位图绘制的滚动字幕是最平滑的。如下图:





以上代码均在Delphi7中测试通过,示例代码下载:GDI之脱屏位图.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: