求教大神,本人使用MFC自己写了一个picture控件,使用GDI的 StrechDIBits()函数绘图,在画大图时速度很慢,3亿像素的8位bmp图,画一次要2000 -2400毫秒也就是2秒以上了。但是用公司的库绘图只要6-20毫秒就能完成,我想问问有什么解决办法吗,是我的问题还是函数本身的问题,或者有什么优化的方法吗。 SYSTEMTIME TimeStart, TimeEnd;
GetLocalTime(&TimeStart);//起始时间
StretchDIBits(pDC->GetSafeHdc(), 0, 0, rcRect.Width(), rcRect.Height(),
dImageXStartPos, dImageYStartPos,
(int)(GetBitMapInfoHeader().biWidth / m_dZoomWidth), (int)(GetBitMapInfoHeader().biHeight /
m_dZoomHeight),
m_pcBufImage, (BITMAPINFO*)m_pBitmapInfo_8, DIB_RGB_COLORS, SRCCOPY);
GetLocalTime(&TimeEnd);//结束时间
float fDetaTime = TimeEnd.wMilliseconds - TimeStart.wMilliseconds + 1000 * (TimeEnd.wSecond - TimeStart.wSecond);
GetLocalTime(&TimeStart);//起始时间
StretchDIBits(pDC->GetSafeHdc(), 0, 0, rcRect.Width(), rcRect.Height(),
dImageXStartPos, dImageYStartPos,
(int)(GetBitMapInfoHeader().biWidth / m_dZoomWidth), (int)(GetBitMapInfoHeader().biHeight /
m_dZoomHeight),
m_pcBufImage, (BITMAPINFO*)m_pBitmapInfo_8, DIB_RGB_COLORS, SRCCOPY);
GetLocalTime(&TimeEnd);//结束时间
float fDetaTime = TimeEnd.wMilliseconds - TimeStart.wMilliseconds + 1000 * (TimeEnd.wSecond - TimeStart.wSecond);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货