我正在将图像查看器编程为学校任务,我不能使用任何库来阅读或处理图像。首先,我从 bmp 格式开始。我创建了用于处理此类文件的类。作为 GUI 框架,我正在使用 wxWidgets。
所以我有普通的 rgb 字节数组,为 wxImage 构造函数准备
wxImage(int width, int height, unsigned char* data, bool static_data = false).
问题是当我将它转换为 wxBitmap 并绘制到 dc 时,它忽略了 rgb 值,只绘制黑色图片。我真的不知道可能是什么问题。这是我绘制图像的代码:
DrawImage(wxDC &dc)
{
BYTE *rgbArray = bmpFile->GetRGB();
wxSize imageSize = wxSize(bmpFile->GetSize().w,bmpFile->GetSize().h);
wxImage image = wxImage(imageSize, &rgbArray);
wxBitmap bitmap = wxBitmap(image);
dc.DrawBitmap(bitmap,5,5, false);
}
这是在绘画活动中:
void OnPaint(wxPaintEvent& event)
{
wxAutoBufferedPaintDC dc(canvas);
dc.SetBackground( wxBrush(canvas->GetBackgroundColour()));
dc.Clear();
DrawImage(dc);
}
rgbArray 填充了正确的值,我检查了多次。
谢谢你的帮助 :)