pospiech
28th July 2008, 15:59
In MFC I used this (ugly) code to display data in bmp Format. Now I have the same Data structure, but want to display it on a QImage. But how do I port this code? (using opensource 4.4 edition)
void CGraphCtrl::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (PixelNumber.x == 0)
return;
//First step: Create BITMAP Header info:
BITMAPINFOHEADER bitmapInfo;
::ZeroMemory(&bitmapInfo,sizeof(BITMAPINFOHEADER));
bitmapInfo.biSize = sizeof(BITMAPINFOHEADER);
bitmapInfo.biWidth = PixelNumber.width();/*enter Width*/
bitmapInfo.biHeight = -PixelNumber.height();/*enter Height*/
bitmapInfo.biPlanes = 1;
bitmapInfo.biBitCount = m_DibColorDepth;
bitmapInfo.biCompression = BI_RGB; //RGB
//bitmapInfo.biSizeImage = bitmapInfo.biWidth*bitmapInfo.biHeight*bitmapInfo. biBitCount/8;
bitmapInfo.biSizeImage = m_DibSize;;
SetDIBitsToDevice(
dc,
0, //dx
0, //dy
PixelNumber.x, // width
PixelNumber.y, // height
0,
0,
0,
PixelNumber.y,
pDIBData,
(LPBITMAPINFO)&bitmapInfo,
DIB_RGB_COLORS);
return;
}
void CGraphCtrl::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (PixelNumber.x == 0)
return;
//First step: Create BITMAP Header info:
BITMAPINFOHEADER bitmapInfo;
::ZeroMemory(&bitmapInfo,sizeof(BITMAPINFOHEADER));
bitmapInfo.biSize = sizeof(BITMAPINFOHEADER);
bitmapInfo.biWidth = PixelNumber.width();/*enter Width*/
bitmapInfo.biHeight = -PixelNumber.height();/*enter Height*/
bitmapInfo.biPlanes = 1;
bitmapInfo.biBitCount = m_DibColorDepth;
bitmapInfo.biCompression = BI_RGB; //RGB
//bitmapInfo.biSizeImage = bitmapInfo.biWidth*bitmapInfo.biHeight*bitmapInfo. biBitCount/8;
bitmapInfo.biSizeImage = m_DibSize;;
SetDIBitsToDevice(
dc,
0, //dx
0, //dy
PixelNumber.x, // width
PixelNumber.y, // height
0,
0,
0,
PixelNumber.y,
pDIBData,
(LPBITMAPINFO)&bitmapInfo,
DIB_RGB_COLORS);
return;
}