【问题标题】:wxWidgets display bitmap from an 8 bit arraywxWidgets 显示 8 位数组的位图
【发布时间】:2010-09-09 06:16:45
【问题描述】:

我有一个函数生成一个需要在屏幕上绘制的数组。该阵列采用 8 位灰度图像的形式。如何正确地将数组绘制到屏幕上?我有这个应用程序的工作版本,带有使用 StretchDIBits 绘制图像的 win32 代码。我的问题是,我可以/如何在 wxWidgets 中做类似的事情吗?

相关工作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);

【问题讨论】:

    标签: c++ winapi wxwidgets


    【解决方案1】:

    wxImage ctor 期望的格式是一个 RGB 数据数组,而您的 LCD_image() 函数不会以这种格式返回它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多