Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création Image en C++

Sujet résolu
    25 octobre 2021 à 16:29:40

    C++

    Bonjour à vous, 

    J'utilise le Langage C++, dans le cadre de mon option de "Codage Numérique : Du Nombre au Pixels". Nous utilisons, un programme qui a été créer par notre professeur qui permet de convertir un premier programme en une image en liant les 2. Cela n'est pas le soucis, mais, nous devons réaliser ce motif.

    Le corps du programme ayant déjà été mis en place, je n'ai pas eu de soucis pour cela. Mais, le problème que j'éprouve arrive lorsque je souhaite créer les carreau. Il faut savoir que nous utilisons des tableau bi-dimensionnel de Pixels pour créer nos motifs ou images.

    /*
     * TestRayures.cpp
     *
     *  Created on: 1 août 2020
     *      Author: Dom
     */
    
    #include <iostream>
    #include <string>
    #include "OutilsCreationImage.h"
    
    using namespace std;
    
    int main()
    {
    cout <<"création d'une image représentant un damier" << endl;
    
    string chemin = "images_creees"; // chemin relatif : c'est-à-dire à partir du répertoire courant
    
    string nomFichierImage  = chemin + "\\" + "TestDamierVFinal.bmp";
    
    const uint32_t LONGUEUR = 400;
    const uint32_t LARGEUR = 320;
    
    uint32_t m = LARGEUR-1;
    uint32_t n = LONGUEUR-1;
    
    const uint32_t couleur1 = 0x88421DFF; 			// acajou opaque
    const uint32_t couleur2 = 0xFFFF00FF; 			// jaune opaque
    
    const unsigned couleurs[] = {couleur1,couleur2};
    
    uint32_t matricePixels[LARGEUR][LONGUEUR];
    
    int largeurRayure = 20;
    int longueurRayure = 20;
    
    uint32_t i,j;
    
    for ( i = 0 ; i <= m ; ++i)		// remplissage de la matrice de pixels
    for ( j = 0 ; j <= n ; ++j )
    	{
        int L = (j)/longueurRayure;
    	int l = (i)/largeurRayure;
    	int k1 = (L%2);
        int k2 = (l%2);
    
        if (k1==k2)
            matricePixels[i][j] = couleurs[k1];
        else{
            matricePixels[i][j] = couleurs[k2];
        }
    	}
    
    OutilsCreationImage::creeImage( nomFichierImage,  matricePixels, LARGEUR);		// sauve l'image sur le fichier nomFichierImage
    
    cout << "image créée" << endl;
    return 0;
    }

    Je n'arrive pas malgré mes efforts à comprendre d'ou viennent mes problèmes...

    • Partager sur Facebook
    • Partager sur Twitter
      26 octobre 2021 à 8:35:35

      Salut,

      ligne 48 a la place de tes if, essaie :   (pas besoin de k1 et k2)

      int c = (L + l)%2;
      matricePixels[i][j] = couleurs[c];



      -
      Edité par Fvirtman 26 octobre 2021 à 8:37:47

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        27 octobre 2021 à 0:00:55

        Merci beaucoup du conseil sa à effctivement fonctionner ;)
        • Partager sur Facebook
        • Partager sur Twitter
          27 octobre 2021 à 3:16:00

          JulienLORSCHEIDER1 a écrit:

          Merci beaucoup du conseil sa à effctivement fonctionner ;)

          Bonjour,

          Sujet résolu

          Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e ;)

          • Partager sur Facebook
          • Partager sur Twitter

          Création Image en C++

          × 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