IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

afficher une image grâce à un tableau de pixel


Sujet :

SDL

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    Ah ok!
    J'ai pensé à cette solution mais je ne sais pas comment récupérer la taille de l'écran automatiquement.

  2. #22
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    En supposant que tu n'aies pas changé le nom des variables, ecran->w te donne la largeur actuelle de ta fenêtre, ecran->h sa hauteur.

    Si tu parles de la taille maximale de la fenêtre que peut contenir ton écran,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const SDL_VideoInfo *videoInfo;
     
    	videoInfo=SDL_GetVideoInfo();
    	largeur_max=videoInfo->current_w;
    	hauteur_max=videoInfo->current_h;
    qui est à faire immédiatement après SDL_Init(); sinon tu vas récupérer la taille que tu as fournie lors du dernier SDL_SetVideoMode();
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    ah D'accord ! Je vous remercie.
    J'ai remarqué cependant que j'avais un autre problème. Lorsque je veux diviser la taille de la fenêtre par deux en utilisant la touche 2 du clavier, l'image diminue mais la fenêtre reste à la même taille (ce qui est bizarre).
    J'ai aussi des fuites de mémoires dû à la SDL.
    Pouvez vous m'aidez svp ?

    Voici le code un peu modifié que j'utilise :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
     
    #include<stdio.h>
    #include<stdlib.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_rotozoom.h>
    #include "affichage.h"
     
    /* creation de l'image*/
    SDL_Surface *createImage(short **image,int height,int width)
    {
          int i,j; 
     
        SDL_Surface *simage= NULL;
        SDL_Rect position;
     
        simage=SDL_CreateRGBSurface(SDL_HWSURFACE,width,height,32,0,0,0,0);
        position.w=position.h=1;
     
        for (i = 0 ; i < height; ++i){
         for(j=0;j<width;++j){
            position.x = j; 
            position.y = i;
            SDL_FillRect(simage,&position,SDL_MapRGB(simage->format,image[i][j],image[i][j],image[i][j]));
        }}
     
    return(simage);
    }
     
    /* affichage de l'image suivant sa taille*/
     
    void displayImage(SDL_Surface **ecran,SDL_Surface *simage,int height,int width)
    {
    	SDL_Surface *newSurf=NULL;
     
    	if(*ecran!=NULL) SDL_FreeSurface(*ecran); /*on efface l'ecran si c'est la premiere fois qu'il est utilise*/
     
    	if(simage->w!=width || simage->h!=height) /*si le redimensionement change la taille de l'image on cree une nouvelle surface */
    		newSurf=rotozoomSurfaceXY(simage,0.,(double)width/(double)simage->w,(double)height/(double)simage->h,1);
    	else newSurf=simage;
     
    	*ecran=SDL_SetVideoMode(newSurf->w,newSurf->h,32,SDL_HWSURFACE|SDL_RESIZABLE|SDL_DOUBLEBUF);
    	SDL_BlitSurface(newSurf,NULL,*ecran,NULL);
    	SDL_Flip(*ecran);
     
    	if(newSurf!=simage) SDL_FreeSurface(newSurf);
    }
     
     
     
    /* Traitement des evenements */
    void treatEvent(SDL_Surface **ecran,SDL_Surface *simage,int height,int width)
    {
    	int done;
    	SDL_Event event;
     
    	done=0;
     
     
     
    	while(!done) {
    		SDL_WaitEvent(&event);
     
     
     
    		switch(event.type) {
    			case SDL_QUIT: done=1; break;
     
    		        case SDL_KEYDOWN:
    				switch(event.key.keysym.sym) {
    					case SDLK_ESCAPE: done=1; break;
    					case SDLK_1: case SDLK_KP1: displayImage(ecran,simage,height,width); break;
    					case SDLK_2: case SDLK_KP2:
    						if(event.key.keysym.mod&KMOD_CTRL) displayImage(ecran,simage,height*2,width*2);
    						else displayImage(ecran,simage,height/2,width/2);
    						break;
     
    					default: break;
    				      }	break;
     
     
    			case SDL_VIDEORESIZE:
    				displayImage(ecran,simage,event.resize.h,event.resize.w);
    				break; 
     
     
    			} 
     
    		}
     
    }
     
     
     
    void affiche(short **image,int nrow,int ncol)
    {
    	SDL_Surface *ecran,*imgSurf; 
    	const SDL_VideoInfo *videoInfo;
    	int largeur_max,hauteur_max;
            ecran=NULL;
     
    	SDL_Init(SDL_INIT_VIDEO);
     
            videoInfo=SDL_GetVideoInfo();  /*determination de la taille de l'ecran*/
    	largeur_max=videoInfo->current_w;
    	hauteur_max=videoInfo->current_h;
     
     
    	imgSurf=createImage(image,nrow,ncol); /*creation de la surface associee à l'image*/
     
    	if(hauteur_max<nrow ||largeur_max<ncol){ nrow=hauteur_max;ncol=largeur_max;} /*si l'image a une plus grande resolution que l'ecran*/
     
    	displayImage(&ecran,imgSurf,nrow,ncol); /*creation de l'image a l'ecran*/
            SDL_WM_SetCaption("My Picture SDL !", NULL); /*mettre un titre a la fenetre*/
     
    	treatEvent(&ecran,imgSurf,nrow,ncol); /* gestion des evenements(clavier,redimensionement, ect...)*/
     
         /* liberation de la memoire */
    	SDL_FreeSurface(imgSurf);
    	SDL_FreeSurface(ecran);
    	SDL_Quit();
    	return;
    }
    et la maniere de construire mon tableaux à deux dimensions :
    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
    16
    17
     
     
    short ** image=NULL;
    size_t i,j,nrow=1920,ncol=2560;
     
      image=malloc(nrow*sizeof(short*)); assert(image!=NULL);  
     
      image[0]=malloc(nrow*ncol*sizeof(short)); assert(image[0]!=NULL);
      for(i=1;i<nrow;++i)image[i]=image[i-1]+ncol; 
     
       for(i=0;i<nrow;i++){
       for(j=0;j<ncol;j++){
     
                     image[i][j]=rand()%256;
          }}
     
      affiche(image,nrow,ncol);

  4. #24
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Hello,

    Je suppose que tu fais appel à la fonction affiche() à chaque fois l'utilisateur demande une modification de la taille de l'image. Et là, tu fais un SDL_GetVideoInfo(). Mais comme tu as déjà utilisé SDL_SetVideoMode(), les tailles renvoyées sont celles du dernier SDL_SetVideoMode().

    Refaire à chaque fois un SDL_Init() n'a pas de sens (pour ce que j'en sais), car cette fonction initialise ceraines "choses" (structures, espace mémoire, etc... je n'ai jamais lu les sources) nécessaires à la SDL, mais ne réinitialise pas la SDL.

    Il faut faire le SDL_Init() une seule fois, et immédiatement derrière le SDL_GetVideoInfo(). Là, tu as les tailles maximales de la fenêtre que ton écran peut contenir.

    Exemple:
    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
    16
    17
    18
    19
    20
     
    main(...)
    {
      ...
      SDL_Init();
      tailles=SDL_GetVideoInfo();
      ...
      while() {
         affiche(image,tailles);
         ... 
         ...
         tailles=nouvelles tailles;
         }
    }
     
    affiche(image,taille)
    {
       SDL_SetVideoMode(taille);
       blit(image,ecran);
    }
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    Hi,

    Je n'y avais pas pensé, je vais faire l'initiation de la SDL dans le main.
    Cependant je ne pense pas que le problème vienne de là car j'appelle affiche une seule fois pour le moment. Le redimensionnement s'effectue dans la fonction treatEvent, j'ai peut être aussi un souci dans la fonction displayImage ou treatEvent.

  6. #26
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Peux-tu poster tout ton code, qu'on voie l'ensemble?
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    D'accord,
    Pour que se soit plus simple j'ai réécrit mon code pour ne prendre en considération que l'affichage.
    Le problème se situe au niveau de la gestion des événements lorsque j'appuie sur la touche 2 de mon clavier l'image diminue mais la fenêtre reste à la même taille.

  8. #28
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Je viens de compiler ton application et de l'exécuter, pas de soucis, l'affichage est normal; quand j'appuie sur la touche 2 ma fenêtre se réduit bien de moitié, ctrl+2 l'agrandit bien du double et 1 la ramène à la proportion 1:1

    Par contre, j'ai noté un petit soucis dans ton code (qui ne l'empêche pas de fonctionner, mais qui empêche d'avoir ce que voudrait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(largeur_max<ncol || hauteur_max<nrow)nrow=hauteur_max;ncol=largeur_max;}
    Dans ton main, change ceci (par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i,j,nrow=1920,ncol=100;
    Par contre, je ne comprends pas ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      image[0]=malloc(nrow*ncol*sizeof(double));
      for(i=1;i<nrow;++i)image[i]=image[i-1]+ncol;
    Edgar.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    Je viens de compiler ton application et de l'exécuter, pas de soucis, l'affichage est normal; quand j'appuie sur la touche 2 ma fenêtre se réduit bien de moitié, ctrl+2 l'agrandit bien du double et 1 la ramène à la proportion 1:1
    C'est bizarre car chez moi ça ne fonctionne pas bien. Quand j'appuie sur la touche 2 mon image se réduit mais la taille de ma fenêtre reste identique.
    Par contre j'ai constaté que si j'appuyais sur l'onglet de redimensionnement de la fenêtre avant d'appuyer sur 2 la ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    image=malloc(nrow*sizeof(double*)); assert(image!=NULL);  
     
      image[0]=malloc(nrow*ncol*sizeof(double)); assert(image[0]!=NULL);
      for(i=1;i<nrow;++i)image[i]=image[i-1]+ncol;
    Ces instructions permettent de transformer image (qui est un double **) en un tableau de dimension 2 avec une représentation contigu en mémoire.

    voici une image de ce que j'obtiens en appuyant sur la touche 2:

  10. #30
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Ces instructions permettent de transformer image (qui est un double **) en un tableau de dimension 2 avec une représentation contigu en mémoire.
    Que je suis bête. Je devais encore avoir la tête dans mon application

    Sous quel système es-tu? Perso, sous win7, et que j'exécute l'application à partir d'une fenêtre DOS (qui elle ne change pas de taille évidemment) ou d'un raccourci sur le bureau, tout est ok. Je ne l'exécute pas à partir d'un EDI.

    Essaie en mettant un raccourci vers ton application, ça aidera peut-être.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    Je suis sur Linux Ubuntu. J'execute mon programme dans un terminal à l'aide d'un makefiles. Je n'utilise pas de IDE mais gedit.
    Par contre je ne comprends pas pourquoi dès que je lance mon exécutable la fenêtre est automatiquement redimensionner, elle n’apparaît pas à sa taille réelle.

  12. #32
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Hélas, à partir d'ici, je vais plus pouvoir t'aider, je ne connais pas l'environnement dans lequel tu travailles.

    Pour ce qui est de l'application, pour moi, elle fonctionne. J'espère que quelqu'un qui connait ton environnement viendra jeter un oeil à cette discussion.

    [EDIT]
    Peut-être que gedit réagit 'un peu' comme mon dos, et ne redimensionne pas sa fenêtre en fonction de celle qu'elle contient?
    [/EDIT]

    Edgar.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  13. #33
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    D'accord pas de soucis, je vous remercie.

  14. #34
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    J'ai testé (sous Linux et tout).

    Le problème, me semble t-il, est que la fenêtre est créer en Maximize. Du coup, le redimensionnement n'est pas possible.
    Après, c'est peut être à cause de l'implémentation de la SDL, sous Linux, je ne sais pas trop. Car il ne me semble pas qu'il y ai de flag pour dire que ce n'est pas maximisé.

    @edgarjacobs : gedit est juste un éditeur de texte, tout simple. Le seul truc que je vois, c'est que sous Windows, la fenêtre n'est pas nécessairement maximisé dans ces conditions.

    Peut être qu'il faut d'abord créer la fenêtre en une moitié de l'écran et ensuite, la faire grandir.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    ah ok d'accord, c'est bizarre.

  16. #36
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    @littlewhite
    gedit est juste un éditeur de texte, tout simple. Le seul truc que je vois, c'est que sous Windows, la fenêtre n'est pas nécessairement maximisé dans ces conditions.
    Merci pour l'information.

    Le problème, me semble t-il, est que la fenêtre est créer en Maximize. Du coup, le redimensionnement n'est pas possible.
    Si on parle de la fenêtre créée par SDL, elle est créée avec le flag RESIZABLE, donc on peut en modifier les dimensions (ça fonctionne d'ailleurs sous windows sans problème).

    La fenêtre (noire) montrée dans la maniature, par qui (quoi?) est-elle créée?
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  17. #37
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Sauf que, la première apparition de la fenêtre est en maximise (oui, je sais, il n'y a pas de flags par rapport à ça). On ne peut pas la redimensionner. Il faut d'abord cliquer sur le bouton pour la rendre redimensionnable (celui qui est a coté de la croix). Je pense que c'est parce que la SDL, lorsque la fenêtre est identique à la taille de l'écran, se met directement en maximise. C'est pour cela que je propose de créer d'abord une fenêtre réduite.
    Sinon, je ne comprend pas plus l'erreur que ça.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  18. #38
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    J'ai fais la même constatation tant qu'on ne clic pas sur l'onglet de redimensionnement de la fenêtre ça ne fonctionne pas. Et la fenêtre apparaît dès le début à la même résolution de l'écran. Il y a un petit souci des gestions d’évidemment on aurait dit sur Linux.

  19. #39
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Donc, le principe que je pense pouvant être une solution au problème, c'est de créer la fenêtre, mais réduite (comme lorsque l'on appuie sur la touche 2 (ou 1, je ne sais plus ))
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  20. #40
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    Re bonjour,

    J'aurais une autre question à vous poser.
    J'ai affiché une image avec la SDL, j'ai remarqué que sous certaine résolution je perdais la qualité de mon image.
    Par exemple sur cette image de contour de coquillage, on constate en faisant un zoom que le contour est fermé mais qu'en dé-zoomant certain pixels disparaissaient c'est normal ?

Discussions similaires

  1. Afficher une image grâce à un tableau de pixels
    Par takout dans le forum OpenCV
    Réponses: 4
    Dernier message: 06/06/2012, 09h36
  2. [Turbo Pascal] Charger une image dans un tableau de pixels
    Par nelbardi dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 16/04/2009, 22h41
  3. Réponses: 3
    Dernier message: 15/12/2007, 16h56
  4. [Débutante] Afficher une image avec 2 données par pixel
    Par diana82 dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 19/09/2007, 01h55
  5. afficher une image dans un tableau
    Par phpaide dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/04/2006, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo