Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enlever le fond d'une image

<modo>pas de titre en MAJ

Sujet résolu
    11 avril 2006 à 20:48:51

    bonjour tout le monde, je voulais savoir si c'était possible de changer le fond d'une image.
    ce que je veux c'est par exemple une image de voiture avec un fond mais je veux recuperer ke la voiture
    donc enfait mettre le fond en bleu par exemple (remplir) pour que la SDL mette le fond transparent grace a la fonction
    SDL_SetColorKey(c6, SDL_SRCCOLORKEY, SDL_MapRGB(c6->format, 0, 0 , 255));

    Et si cela est possible et avec quel logiciel et comment faire SVP.
    Merci d'avance :D
    • Partager sur Facebook
    • Partager sur Twitter
      11 avril 2006 à 20:51:23

      Si tu veux le faire pour "toujours", édite ton image dans un éditeur graphique, sinon, réfléchis ! :p
      • Partager sur Facebook
      • Partager sur Twitter
        11 avril 2006 à 21:35:18

        C'est facile !
        Tu enleve le bleu avec SDL_ColorKey[..], tu blitte la voiture sur une surface rouge et tu sauve la nouvelle image avec SDL_SaveBMP.
        Ensuite tu va voir ton fichier, et hop ! ta voiture a un fond rouge !
        • Partager sur Facebook
        • Partager sur Twitter
          11 avril 2006 à 21:56:48

          enfait le fond nest po uni sur la photo donc ce que je voudrais c'est qu'il le devienne et c sa que j'arrive pas. Merci a vous deux
          • Partager sur Facebook
          • Partager sur Twitter
            11 avril 2006 à 22:12:45

            Tu ne peux pas rendre un fond transparent s'il n'est pas uni. Point barre :p
            • Partager sur Facebook
            • Partager sur Twitter

            If you'd like to join us, read "How do we work at OpenClassrooms"! :)

              11 avril 2006 à 22:38:41

              Que je peut rendre le fond transparent sans qu'il soit uni ,cela je le sait mais ce que je veut c'est le rendre uni.
              Ce que je voulais savoir c'est si il y avait un moyen de "remplir" le fond de limage en une couleur unie.
              Merci encore :p:lol:
              • Partager sur Facebook
              • Partager sur Twitter
                11 avril 2006 à 22:42:25

                Si le fond n'est pas uni, aucun logiciel ne peut le considerer comme un fond.

                Il n'y a qu'une solution, tu prend paint et, hop, à la guerre comme à la guerre !
                Y'a pas d'autre possibilité.
                • Partager sur Facebook
                • Partager sur Twitter
                  11 avril 2006 à 22:43:00

                  Il faut utiliser un logiciel de retouche d'image comme Photoshop, The Gimp ou même Paint.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 avril 2006 à 22:47:20

                    Oui mais peu importe le logiciel, tu ne peut pas modifier quelquechose qui n'est pas uni.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 avril 2006 à 22:48:13

                      dc si g bien compris il faut que je prenne Paint par exexple et que je met en bleu (0, 0, 255)tous ce que je veut qu'il disparesse. Donc pour mon casje met en bleu tous sauf la voiture.Merci a tous et j'essayrai des demain et surtout je vous tient au courant :p;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 avril 2006 à 23:11:44

                        Voilà, tout ce qqui dois disparaitre, tu le met de la meme couleur.
                        C'est un peu de boulot mais bon, c'est comme ça !! lol
                        bonne chance ! :D
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 avril 2006 à 8:21:04

                          Voila j'ai essayé de mettre en bleu tous ce que je voulais pas garder mais la SDL affiche l'image avec le bleu alors que j'ai effectuer l'operation de la meme maniere que l'exemple pour zozor dans le cours.
                          ??? :D
                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 avril 2006 à 11:37:42

                            Passe ton code..
                            Tu es sur que c'est le meme bleu que zozor ? (0,0,255) ..
                            • Partager sur Facebook
                            • Partager sur Twitter
                              12 avril 2006 à 11:52:41

                              #include <stdlib.h>
                              #include <stdio.h>
                              #include <SDL/SDL.h>
                              #include <SDL/SDL_image.h>

                              #include "main.h"

                              int main(int argc, char *argv[])
                              {
                                  SDL_Surface *ecran = NULL, *imageDeFond = NULL, *zozor = NULL, *sapin = NULL, *c6 =NULL;
                                  SDL_Rect positionFond;

                                  positionFond.x = 50;
                                  positionFond.y = 0;

                                  SDL_Rect positionZozor;

                                  positionZozor.x = 600;
                                  positionZozor.y = 325;

                                  SDL_Rect positionSapin;

                                  positionSapin.x = 675;
                                  positionSapin.y = 270;

                                  SDL_Rect positionC6;

                                  positionC6.x = 100;
                                  positionC6.y = 0;

                                  SDL_Init(SDL_INIT_VIDEO);

                                  SDL_WM_SetIcon(SDL_LoadBMP("sdl_icone.bmp"), NULL);

                                  ecran = SDL_SetVideoMode(900, 600, 32, SDL_HWSURFACE);
                                  SDL_WM_SetCaption("Chargement d'images en SDL", NULL);

                                  /* Chargement d'une image Bitmap dans une surface */
                                  imageDeFond = IMG_Load("lac_en_montagne.bmp");
                                  /* On blitte par-dessus l'écran */
                                  SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);

                                  zozor = IMG_Load("zozor.bmp");
                                  SDL_SetColorKey(zozor, SDL_SRCCOLORKEY, SDL_MapRGB(zozor->format, 0, 0 , 255));
                                  SDL_SetAlpha(zozor, SDL_SRCALPHA, 128);
                                  SDL_BlitSurface(zozor, NULL, ecran, &positionZozor);

                                  sapin = IMG_Load("sapin.png");
                                  SDL_BlitSurface(sapin, NULL, ecran, &positionSapin);

                                  c6 = IMG_Load("C6.bmp");
                                  SDL_SetColorKey(c6, SDL_SRCCOLORKEY, SDL_MapRGB(c6->format, 0, 0 , 255));
                                  SDL_BlitSurface(c6, NULL, ecran, &positionC6);

                                  SDL_Flip(ecran);
                                  pause();

                                  SDL_FreeSurface(imageDeFond); /* On libère la surface */
                                  SDL_FreeSurface(zozor);
                                  SDL_Quit();

                                  return EXIT_SUCCESS;
                              }

                              voila mon code et pour la couleur oui je suis sur que c'est la meme couleur c'est à dire (0,0,255)je l'ai choisi avec paint dans couleur personalisée ,un truc comme sa.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                12 avril 2006 à 13:47:23

                                Alors ba là je sais pas !
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Enlever le fond d'une image

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown