私は学校の仕事として画像ビューアをプログラミングしていますが、画像を読んだり操作したりするためにライブラリを使用することはできません。まず、bmp形式から始めました。このタイプのファイルを処理するためのクラスを作成しました。GUIフレームワークとして、私はwxWidgetsを使用しています。
だから私はwxImageコンストラクターのために準備されたプレーンなrgbバイト配列を持っています
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は正しい値で満たされているので、何度もチェックしました。
助けてくれてありがとう:)