|
|
发表于 2007-4-12 13:52:00
|
显示全部楼层
Re:怎样读取资源包内图片到DDRAW表面?
呃,这个也挺麻烦的,如果你对GDI没有太多了解的话。
不过当你搞明白之后也是非常简单的。
( 加个关键词: 读取 图片 BMP 内存 资源包 )
首先需要了解一下BMP的文件结构。
其实标准的BMP文件就是将DIB信息原原本本地保存到文件而已,所以可以轻松将它读入内存然后创建DIB。
DIB是“设备无关位图”的缩写,Win32平台里面大都使用这种位图。
BMP文件的结构是首先是一个BITMAPFILEHEADER类型的UDT作为头部,然后跟一个完整的DIB。
如果图简单的话,直接将BMP文件的头部那一段去掉,然后将后面的作为DIB拷贝到内存中就OK了。
GDI使用CreateDIBSection来创建DIB位图:
Declare Function CreateDIBSection Lib "gdi32" (ByVal hdc As Long, _
pBitmapInfo As BITMAPINFO, _
ByVal un As Long, _
lplpVoid As Long, _
ByVal handle As Long, _
ByVal dw As Long) As Long
其中hdc参数要传递和你想创建的设备环境相同的一个设备DC,pBitmapInfo参数是DIB的描述,un参数指定是RGB模式(为0)还是PAL模式(为1),lplpVoid这个参数最重要,系统会把创建完成的DIB内存地址通过它返回给你,最后handle和dw参数是和文件映射有关的,一般传0就可以了。
|
|