wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Afficher une image stockée en mémoire
Conversation (Résolue) : Afficher une image stockée en mémoire
10-05-2015 15:07:35  Afficher une image stockée en mémoire #1
mybofy (Nouveau membre)
Inscrit le : 03-05-2015
Messages: 7
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour
J'affiche sans problème une image contenue dans un fichier.
Il suffit d'un simple :

Code Cpp:

 
        ImagePanel *drawPanel = new ImagePanel( frame, wxT("/Users/rn/Apps/AppWx/.../Unknown.jpg"), wxBITMAP_TYPE_ANY);
        sizer->Add(drawPanel, 1, wxEXPAND);
 


Mais je ne sais pas afficher une image contenue dans un char * (provenant d'une requête sql) !!!
Je dois manquer quelque chose quelque chose quelque part...

Merci
11-05-2015 08:35:04  Re: Afficher une image stockée en mémoire #2
fabrizio (Membre)
Lieu: france
Inscrit le : 06-04-2008
Messages: 28
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Salut


Code Cpp:

 
 
wxMemoryInputStream stream(my_memory_block, size);
wxImage theBitmap;
if (!theBitmap.LoadFile(stream, wxBITMAP_TYPE_BMP))
    return;
 
 


http://docs.wxwidgets.org/3.0/classwx_m … tream.html

Vouloir être de son temps, c'est déjà être dépassé.
11-05-2015 13:52:14  Re: Afficher une image stockée en mémoire #3
mybofy (Nouveau membre)
Inscrit le : 03-05-2015
Messages: 7
Snippets: 0
Tutoriels: 0
Hors ligne
Merci

Pour info, voici mon code complété :

Code Cpp:

 
        wxBoxSizer* sizer;
        wxFrame *frame;
        wxStaticBitmap* sbmp;
        wxImage bitmap;
        int ijk;
        int delta = 16;
        for (ijk=0; ijk<PQntuples(res); ijk++) {
            int width = atoi(PQgetvalue(res, ijk, 2));
            int height = atoi(PQgetvalue(res, ijk, 3));
            char * imgPQ = PQgetvalue(res, ijk, 1);
 
            sizer = new wxBoxSizer(wxHORIZONTAL);
            frame = new wxFrame(NULL, wxID_ANY, itemSelected, wxPoint(320 + ijk*delta, 32 + ijk*delta), wxSize(width,height+256));
 
            unsigned char *photoChar = (unsigned char *)imgPQ;
            size_t buflen;
            char *imgJEPG = (char *)PQunescapeBytea(photoChar, &buflen);
 
            wxMemoryInputStream stream(imgJEPG, buflen);
            if (ijk == 0) bitmap.AddHandler(new wxJPEGHandler);
            if (!bitmap.LoadFile(stream, wxBITMAP_TYPE_JPEG)) { wxPuts("erreur"); return; }
            sbmp = new wxStaticBitmap(frame, wxID_STATIC, wxNullBitmap, wxDefaultPosition, wxSize(width, height));
            sbmp->SetBitmap(bitmap);
            frame->SetSizer(sizer);
            frame->Show();
        }
 


On peut sans doute mieux faire, notamment libérer la mémoire...
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Afficher une image stockée en mémoire