我们可以在GDI中使用png代替位图来进行bitblt吗?

时间:2010-05-04 11:18:55

标签: gdi+ png bmp

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吗?

因为当我转换fron png(位图中的1kb - > 12kb)时,位图非常大

感谢您阅读此内容:)

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

相关问题