2010-09-09 62 views
1

我有一個函數可以生成一個我需要繪製到屏幕上的數組。該陣列採用8位灰度圖像的形式。如何正確地將數組繪製到屏幕上?我有一個使用StretchDIBits繪製圖像的win32代碼的這個應用程序的工作版本。我的問題是,我可以/如何在wxWidgets中做類似的事情?wxWidgets顯示8位數組的位圖

相關工作的Win32代碼:


screen = LCD_image(calcs[slot].cpu.pio.lcd) ; 
     if (StretchDIBits( hdc, 
          rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, 
          0, 0, lcd->width, 64, 
          screen, 
          bi, 
          DIB_RGB_COLORS, 
          SRCCOPY) == 0) { 
          printf("error in SetDIBitsToDevice\n"); 
         } 


     if (BitBlt(hdcDest, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, 
      hdc, 0, 0, SRCCOPY) == FALSE) printf("Bit blt failed\n"); 

相關的非工作的wxWidgets代碼:

unsigned char *screen; 
screen = LCD_image(calcs[gslot].cpu.pio.lcd) ; 
wxImage screenImage(rc.GetWidth(), rc.GetHeight(), screen, true); 
wxBitmap bmpBuf(screenImage); 
wxMemDC.SelectObject(bmpBuf); 
wxDCDest->Blit(drawPoint.x, drawPoint.y, rc.GetWidth(), rc.GetHeight(), &wxMemDC, 0, 0); 
wxMemDC.SelectObject(wxNullBitmap); 

回答

0

通過wxImage男星期望的格式爲RGB數據的數組,你LCD_image()函數不返回它以這種格式。