Ouvrir une image avec Wxwidget - C++ - Programmation
Marsh Posté le 05-01-2005 à 16:45:10
Maintenant j'ai plus d'erreur, car j'ai fait une référence au fichier libjpeg.a dans l'editeur de liens, mais ma fonction d'ouverture d'image ne fonctionne pas. J'ai bien la boite de dialoque mais quand je séléctionne un jpg et que je clique sur OK, l'image n'apparait pas.Quelqu'un a une idée de la raison pour laquelle ça ne fonctionne pas. Y a t'il d'autre choses à faire pour pouvoir ouvrir une image ?
Marsh Posté le 05-01-2005 à 16:57:15
T'as fais une alloc ?
wxImage *m_pImage = new wxImage;
Et sinon, le deuxième paramètre de LoadFile est optionnel. Essaie sans. Et vérifie que le chemin que tu passes est correct.
Marsh Posté le 05-01-2005 à 17:01:04
Ah, pour afficher, il faut faire un brave dc.DrawBitmap (en créant un Bitmap depuis l'image):
Code :
|
Marsh Posté le 05-01-2005 à 17:05:39
Oui,
m_pImage = new wxImage ();
sinon je pense que ca compilerait pas.
J'ai essayer sans le deuxième paramètre, ca ne change rien.
J'ai imprimé mon path dans la status bar et il est correct.
Sinon si quelqu'un à un programme qui fonctionne il pourrait me l'envoyer. Ou si vous connaissez un bon tutorial pour ouvrir une image avec Wxwidget ?
Marsh Posté le 05-01-2005 à 17:18:08
Lam's, j'ai essayer ta solution, mais ça ne fonctionne pas non plus. C'est peut être parceque j'utilise pas une wxScrolledWindow. Moi j'utilise une WxFrame:
Code :
|
Qu'est ce t'en pense ?
Marsh Posté le 05-01-2005 à 17:22:11
freerider1 a écrit : Lam's, j'ai essayer ta solution, mais ça ne fonctionne pas non plus. C'est peut être parceque j'utilise pas une wxScrolledWindow. Moi j'utilise une WxFrame |
Bon, il va te falloir t'investir un peu dans la doc, et voir comment fonctionne l'affichage, et les DCs.
En attendant, essaye ça dans ton code:
Code :
|
Marsh Posté le 05-01-2005 à 17:34:16
Faut déjà savoir si c'est l'image qui n'est pas chargée ou si elle est pas affichée. Essaye de créer un bitmap en mémoire et de le dessiner, et essaye de refiler ton jpeg lu à un wxStaticBitmap par exemple.
Marsh Posté le 05-01-2005 à 17:36:20
Ca marche pas, mais comme tu dis, j'ai sans doute interêt à regarder l'affichage et les DCs dans la doc.
Quelqu'un connait un bon tutorial sur Wxwidget?
Moi j'ai déjà celui de Franky Braem (wxWindows 2 Programming cross-platform GUI applications in C++), mais j'en ai pas trouvé d'autre qui était bien fait.
Sinon il y a la doc officielle, mais j'ai pas encore assez d'expérience pour bien m'y retrouver.
En tout cas, merci à toi Lam's. Je reviendrais quand j'aurais potasser un peu le sujet.
Marsh Posté le 05-01-2005 à 19:02:21
Oui, un de mes reproches à ce tk : le manque de doc. Y'a ça en français : http://chgi.developpez.com/wxwidgets/
Mais vu que c'est pas mal inspiré des MFC, un tutoriel sur les DC sous Windows devrait faire l'affaire.
Marsh Posté le 06-01-2005 à 11:09:47
Si vous télécharger les sources de Wxwidget (moi j'avais télécharger que devpack pour devcpp), il y a un répertoire sample dans lequel il y a pas mal d'exemple, dont celui d'une appli qui permet d'ouvrir une image. Faut que je regarde comment ça marche.
Marsh Posté le 06-01-2005 à 12:01:41
Voilà un exemple qui fonctionne. Il faut donc bien redessiner un bitmap à partir de l'image que l'on veut ouvrir. Il s'agit d'une exemple fournit avec Wxwidget que j'ai simplifié car l'exemple original à bcp de fonctionnalités.
On a une frame principale pour l'appli (MyFrame) et une frame dans laquelle on ouvre l'image (MyImageFrame). Quand on clique sur show image dans le menu, on créer une objet de classe MyImageFrame auqel on passe l'image préalablement convertie en bitmap (wxBitmap(image)). Ce bitmap est redessiné via la fonction OnPaint de la classe MyImageFrame.
Attention de ne pas oublier d'ajouter les librairie suivantes dans l'editeur de liens:
libpng.a
libjpeg.a
libtiff.a
libzlib.a
Code :
|
Encore merci pour votre aide.
Marsh Posté le 30-04-2005 à 03:23:46
Bonsoir, moi j'aimerai trouver de la bonne doc FR sur wxWidget, car je trouve ca vraiment tres tres interessant !
j'ai déja celel de developpez, mais si quelqu'un connaitrait de meilleurs informations ,j'en serait fort content !
Marsh Posté le 05-01-2005 à 16:39:38
Salut à tous,
j'essaye d'ouvrir une image avec Wxwidget.
Voilà comment ça se présente globalement:
Tout d'abord j'initilaise un JPEG handler dans l'init de mon appli (...OnInit()):
Je déclare dans la déclaration de ma frame un pointer sur un objet de classe wxImage:
Finalement, dans la fonction qui ouvre l'image, j'appelle la fonction LoadFile:
J'ai toute une série d'erreur du type:
[linker error] Undefined reference to 'jpeg_...'
Je me suis demandé si il ne fallait pas que j'installe une librairie graphique, donc j'ai installer GD et j'ai fait une include de gd.h mais ça n'a pas solutionner le problème.
Quelqu'un à une idée.
Merci.