Bonjour,
Ceci est mon 1er message sur le forum, donc je vais essayer de faire ça dans les règles.
Comme l'indique le titre, je dispose d'un tableau d'entiers (contenant des valeurs des pixels). Je souhaite créer une wxBitmap depuis ce tableau, afin de l'inclure plus tard dans une liste (wxListCtrl).
J'ai naturellement essayé la méthode :
en remplaçant data par mon tableau. Toutefois il faut spécifier un type (d'ailleurs je ne vois pas l'utilité du type vu que l'on construit la bitmap depuis des données menfin...), j'ai donc mis wxBITMAP_TYPE_PNG après avoir charger le handler correspondant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part wxBitmap(const void* data, int type, int width, int height, int depth = -1)
voila le code qui me donne une erreur de type : wxDIB::Create() : invalid bitmap
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 wxBitmap Frame::drawBitmap(Image* img, int max) { int width = img->getWidth(); int height = img->getHeight(); int* data = new int[width*height]; for(int i = 0; i < width*height; i++) data[i] = img->getData(i) * NDG / max; wxBitmap bitmap(data, wxBITMAP_TYPE_PNG, width, height); bitmap.SetWidth(100); bitmap.SetHeight(100); return bitmap; }
A noter que :
- width et height sont bien récupérés.
- data contient des données correctes
- ne pas s'occuper de NDG et Image* ce sont des types définis par mes soins qui n'interviennent pas dans l'erreur générée
- l'erreur semble provenir d'un appel a wxImage::ConvertToImage , surement à la suite du SetWidth() et SetHeight(), j'ai essayé de remplacer par un ConvertToImage suivi d'un scale, mais même erreur.
Donc la question demeure : comment créer une wxBitmap depuis un tableau d'entiers ? Ce ne doit pas être la mort quand même...
Merci de votre attention.
Partager