gpt4 book ai didi

c++ - wxWidgets 显示来自 8 位数组的位图

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:02:04 27 4
gpt4 key购买 nike

我有一个生成数组的函数,我需要将其绘制到屏幕上。该阵列采用 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);

最佳答案

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

关于c++ - wxWidgets 显示来自 8 位数组的位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com