|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
Bonjour à tous,
J'ai un tableau où chaque élément correspond à l'intensité d'un pixel. Je souhaiterai afficher dans une fenêtre l'image associée mais je ne sais pas comment faire ceci. Pouvez vous m'aidez s'il vous plaît ? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 368 ![]() |
Pour répondre simplement il te faut passer par une bibliothèque capable de gérer l'environnement graphique que tu utilises. Pour ma part c'est Gtk+. Mais il y en a d'autres...
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.26 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
J'utilise la SDL mais après je ne sais pas comment procéder pour m'afficher l'image.
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 368 ![]() |
J'imagine qu'il faut passer par ces fonctions :
http://wiki.libsdl.org/moin.cgi/CategoryPixels
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.26 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Gérald Conducteur de train Inscription : février 2008 Messages : 1 368 ![]() |
J'ai trouvé plutôt cette fonction qui me semble plus adaptée à ce que tu recherches :
SDL_ConvertPixels();.
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+) Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1 Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.26 contact jabber : gerald3d@jabber.tuxfamily.org |
|
|
10
|
|
|
#6 |
![]() ![]() Cyrille Network programmer Inscription : juin 2010 Messages : 1 570 ![]() |
Bonsoir,
Avec la SDL le plus simple serait de créer une SDL_Surface avec tes pixels afin de l'afficher. |
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
j'ai trouvé une solution, la voici :
Code :
Pouvez vous m'aider ? |
||
|
|
00
|
|
|
#8 | ||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 206 ![]() |
Bonsoir,
Pour moi, tu peux déjà simplifier ta fonction, en te passant de la variable lignes: Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
Ok ça marche aussi,
En fait mon paramètre I est une matrice de double qui contient les valeurs des pixels en niveau de gris d'une image. Le souci de redimensionnement c'est que lorsque j'affiche mon image de taille 199*199, je souhaiterai agrandir la fenêtre. La fenêtre change bien de dimension mais l'image reste à la même taille. Je souhaiterai que l'image se redimensionne avec la fenêtre. Par contre j'ai pas compris cette instruction : position.w=position.h=1; Pouvez vous me l'expliquer ? |
|
|
00
|
|
|
#10 | |||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 206 ![]() |
Citation:
Citation:
Si, par exemple, w=10 et h=35, une surface de 10 pixels de largeur et de 35 pixels de hauteur serait remplie avec la couleur demandée. Citation:
Si tu as besoin de plus d'explications, n'hésite pas. Edgar. * cela changera la physionomie de ton programme. Mais bon, rien de bien compliqué, uniquement quelques aménagements. |
|||
|
|
00
|
|
|
#11 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 788 ![]() |
Bonjour,
Avec les informations que nous avons actuellement, la bibliothèque des bibliothèques plus évolués que la SDL aurait été préférable. Je pense à Qt ou GTK ou autre du même genre. Je dis cela, car tout ce que l'on a vu jusqu'à maintenant, ne justifie toujours pas le choix de la SDL. Sauf si vous voulez refaire quelques routines bas niveau, mais cela pas du tout le cas. Sinon, bonne continuation.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
Bonjour à tous,
Je me permet de ré-ouvrir ce topic car j'ai un problème d'affichage avec certaines images en utilisant la méthode que vous m'avez préconisé. J'arrive à afficher des images de faibles résolutions mais quand il s'agit d'images de plus grandes tailles chez moi ça ne fonctionne pas. La taille de l'image testée est de 1920 X 2560, pouvez-vous m'aidez svp ? |
|
|
00
|
|
|
#13 | |
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 206 ![]() |
Citation:
Je viens de tester ceci Code :
ecran = SDL_SetVideoMode(1920,2560, 32, SDL_HWSURFACE|SDL_DOUBLEBUF); |
|
|
|
00
|
|
|
#14 | ||||
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
En fait la fenêtre s'affiche, cependant l'image ne s'affiche pas dans la fenêtre.
Ce qui est bizarre avec des résolutions plus faible l'image s'affiche. Je pense que le problème est la : Code :
Code :
|
||||
|
|
00
|
|
|
#15 | ||||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 206 ![]() |
Ceci fonctionne parfaitement chez moi:
Code :
Ne sachant pas comment ton tableau était construit, je ne me suis pas posé de question sur Code :
|
||||
|
|
10
|
|
|
#16 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 788 ![]() |
Bonjour,
Est ce que l'image est bien chargée ? Peut on voir le code que vous utilisez ?
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
|
|
#17 | ||
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
Après avoir réfléchi sur vos derniers propos j'ai trouvé l'erreur.
Elle se situe là : Code :
Maintenant mon image dépasse la dimension de mon écran ce qui est normale. Il n'existe pas un moyen plus simple que ce que vous avez exposé, pour pouvoir redimensionner ma fenêtre en même temps que l'image ? J'aimerai pouvoir la regarder dans des dimensions moins grandes ? Pensez vous que pour des opérations de traitement d'images il serait mieux d'utiliser GTK au lieu de la SDL ? |
||
|
|
00
|
|
|
#18 | ||||||||
|
Membre éclairé
![]() Développeur informatique Inscription : mai 2011 Messages : 206 ![]() |
Modifier la taille de l'image n'a rien de bien sorcier. Il y a juste une étape supplémentaire: il faut construire l'image de base dans une SDL_Surface. Cette surface de base ne sera jamais modifiée, c'est par extrapolation de celle-ci que l'on génèrera une surface d'une autre taile.
Voici l'enchainement des tâches (je prends comme exemple la variable img créée dans une autre réponse): 1) Création de la surface de base Code :
Code :
Code :
Code :
et linker avec la librairie Pour GTK, je n'en sais rien, je ne connais pas (encore) cette librairie (c'est dans les bagages pour l'été). Edgar. |
||||||||
|
|
10
|
|
|
#19 |
|
Membre du Club
![]() Inscription : janvier 2011 Messages : 374 ![]() |
Bonjour,
Je vous remercie ça fonctionne Cependant j'ai un petit souci avec la gestion des événements. J'aimerai savoir comment puis-je faire pour afficher que des images qui ont une résolution inférieur à celle de l'écran. C'est à dire si la résolution de l'image dépasse celle de l'écran, la taille de cette dernière devient celle de l'écran. |
|
|
00
|
|
|
#20 |
![]() ![]() ![]() ![]() Alexandre LaurentIngénieur développement logiciels Inscription : mai 2008 Messages : 10 788 ![]() |
Tu charge l'image, tu regarde sa taille, tu la compare avec celle de l'écran, et si dans une des deux dimensions (largeur ou hauteur) elle dépasse, tu redimensionne.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
00
|
Copyright © 2000-2013 - www.developpez.com