0
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = SelectObject(hdcMem, g_hbmBall);
GetObject(g_hbmBall, sizeof(bm), &bm);
BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);

我发现很多游戏都使用位图来显示动画。但是我们可以使用 png 代替吗?

因为当我从 png ( 1kb -> 12kb in bitmap ) 转换时位图很大

感谢您阅读本文:)

4

2 回答 2

2

不,您不能BitBlt使用 PNG。 BitBlt(顺便说一下,它代表“位块传输”)非常快,但它基本上只是一个简单的内存复制例程。因此,除未压缩位图之外的任何图像格式的唯一方法BitBlt是首先将该格式转换位图。

顺便说一句,应用程序通常将位图用于动画,因为您不希望每次都必须解压缩精灵图像来增加整体帧渲染时间。位图只是通常将事物缓存在内存中以提高性能的一个示例。

于 2010-05-04T11:27:34.757 回答
1

不,我不这么认为,但 GDI+ 支持 PNG 以及其他几种格式。

于 2010-05-04T11:22:50.620 回答