News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

Error at image creating

Started by Tomi, January 24, 2024, 01:48:38 PM

Previous topic - Next topic

Tomi

Hello!

I'm using wxWidgets 3.0.x with wxSmith and I would like show images on the screen.
I wrote this code for this:

class SpaceShip {
public:
    SpaceShip (int xh, int yh) {
        xplace = xh;
        yplace = yh;
    };
    int xplace, yplace;
    wxBitmap itsimage=wxImage(_T("C:\\Users\\Tomi\\Desktop\\spaceship.png")); //Warning: Unknown image data format
};
SpaceShip* spship=new SpaceShip(200,200); //If I comment out this line, everything is OK, because nothing call the class above. Maybe am'I create this on wrong place?

class BlueDot {
public:
    BlueDot(int xh, int yh) {
        xplace = xh;
        yplace = yh;
    };
    int xplace, yplace;
    wxBitmap itsimage=wxImage(_T("C:\\Users\\Tomi\\Desktop\\bluedot.png")); //Here works well...
};
std::vector<BlueDot> bluedots;


Then I paint the instances of these classes:

void wxw30testprogFrame::OnPaint(wxPaintEvent& event)
{
    wxPaintDC dc(this);
    wxBitmap bitmap(spship->itsimage);
    dc.DrawBitmap(bitmap, spship->xplace,spship->yplace, false);

    for (int i=0; i<bluedots.size(); i++) {
        wxPaintDC dc(this);
        wxBitmap bitmap(bluedots[i].itsimage);
        dc.DrawBitmap(bitmap, bluedots[i].xplace,bluedots[i].yplace, false);
    };
}


At the spaceship.png I get an error message from its unknown image data format. But this method at BlueDot class works well. What is wrong?

Miguel Gimenez

Did you call wxInitAllImageHandlers()?

This is OT here, next time you should ask in the wxWidgets' forum.

Tomi

Yes, I tried with wxInitAllImageHandlers(), but the problem is the same.
I think, the problem really is not with the image format, but I create the instance of the SpaceShip on wrong place -  then, where is the good declaration place of it  in the code?

P.S.: sorry if this is an offtopic...  :-[

Miguel Gimenez

Programmng issues are OT here, sorry.