大家来讨论一下,用什么方法显示位图最快!见者有分。

ayanamiwww 2002-09-13 03:20:25
在windows下显示位图的方法众多,大家来谈谈到地用什么方法来显示能最快呢。最好能给出显示的代码。假设现在有一24bit位图,存放在*buf中,其中包括BITMAPFILEHEADER,BITMAPINFO,数据区。要求在一DIALOG中进行快速的显示。
...全文
71 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolc 2002-09-13
  • 打赏
  • 举报
回复
up
ayanamiwww 2002-09-13
  • 打赏
  • 举报
回复
我的意思是把内存里的一副位图显示出来,我想要是能直接的把该位图数据拷贝到显存的话,就能很快了,但是具体怎么做,高手请指点!
long_in_sea2002 2002-09-13
  • 打赏
  • 举报
回复
好像听过
先把为图的索引放在内存,把数据放在硬盘上
调用的时候会快点
taianmonkey 2002-09-13
  • 打赏
  • 举报
回复
up
taoni 2002-09-13
  • 打赏
  • 举报
回复
创建内存DIB显示
BITMAPINFO bi ;
HDC hMemDC ;
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth = Bitmap.bmWidth;
bi.bmiHeader.biHeight = Bitmap.bmHeight;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = wBitCount;
bi.bmiHeader.biCompression = BI_RGB;
bi.bmiHeader.biSizeImage = 0;
bi.bmiHeader.biXPelsPerMeter = 0;
bi.bmiHeader.biYPelsPerMeter = 0;
bi.bmiHeader.biClrUsed = 0;
bi.bmiHeader.biClrImportant = 0;
hBitmap1 = CreateDIBSection( pDC->GetSafeHdc(), &bi, DIB_RGB_COLORS, p, NULL, 0 ) ;
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap1);
HWND hWnd = AfxGetMainWnd()->GetSafeHwnd() ;
HDC hDC = ::GetDC(hWnd) ;
BitBlt(hDC, 0, 0, 1024, 768,hMemDC, 0, 0, SRCCOPY);
SelectObject( hMemDC, hOldBitmap ) ;
P是数据区指针。
ayanamiwww 2002-09-13
  • 打赏
  • 举报
回复
那是一般的显示方法,我曾经看文章介绍过使用视频函数来进行显示,但是现在还没能弄明白呢。该视频函数是:DrawDib()。
oldworm 2002-09-13
  • 打赏
  • 举报
回复
我觉得说最快的方法不妥,快是个相对概念,更快的方法也许是合理的叫法。
如果用Gdi显示,建立一个内部dc,建立一个Bitmap, bitmap被选进DC,内存dc上先画出来,然后bitblt,如果用DirectDraw,或者直接用写屏方式,应该速度更快。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧