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

C Discussion :

Mon image BMP enregistrée est plus petite que mon image BMP chargée


Sujet :

C

  1. #21
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut Luminosité de mon image BMP
    Bonjour Médinoc,
    voici le code, je pense, de la luminosité de mon image : - j'ai cherché sur internet et j'ai trouvé une formule : L = (R+G+B) / 3 -

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    imageBMP Histo_luminosite = imageBMP_create (600, 600, 0xFFFFFFFF);
      for (i = 0; i < 256; i++)
       {
        int moyenne = (R[i]+G[i]+B[i])/3;
        imageBMP_draw_rectangle (Histo_luminosite, i, 0,
    			    i+1, moyenne/100 , 0x000000FF);
     
       }
     
    imageBMP_destroy(&Histo_luminosite);

    j'aimerais poster ici les images créées à partir de ces codes, mais ça plante quand je veux uploader en .7zip

  2. #22
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut mes images
    j'ai reussi à envoyer mes images. En 7zip, ça ne marchait pas. En .zip, ça marche.


    imageBMP_RGB_histo_SONIC.bmp.zipimage_Histo_luminosite_SONIC.bmp.zipSONIC.bmp.zipSONIC_COPY_AND_REPLACE.bmp.zip

  3. #23
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Attention, la moyenne des histogrammes, ce n'est pas du tout la même chose que l'histogramme des moyennes!

    Je l'explique avec un exemple extrême: Une image 48*48 (2304 pixels) toute noire, avec juste trois pixels 100% rouge (255, 0, 0) et trois pixels 100% vert (0, 255, 0).
    • L'histogramme rouge contiendra { 2301, 0, ..., 0, 3 }
    • L'histogramme vert contiendra { 2301, 0, ..., 0, 3 } également
    • L'histogramme bleu contiendra { 2304, 0, ..., 0, 0 }
    • Un histogramme des moyennes contiendra { 2298, 0, ..., 0, 6, 0, ..., 0 } (avec le 6 à la position 255/3=85)
    • Mais une moyenne des histogrammes RGB contiendra plutôt { 2302, 0, ..., 0, 2 }!

    PS: Tes images zippées ne sont pas du tout pratiques. Pourquoi ne pas les ouvrir avec Paint ou Gimp, pour les ré-enregistrer en PNG?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #24
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    ok, j'espère avoir compris.
    1) Donc voilà une image enregistrée en bmp avec la fonction que j'ai publiée plus haut (image 1, celle du poisson).

    2) Ensuite, je crée une image dans laquelle j'insère des ronds de couleur en utilisant les modules de Jacques Olivier Lapeyre (listes doublement chaînées) (image 2, les ronds de couleur sur fond gris).

    3) Puis je superpose les deux (image 3 , poisson + ronds)

    4) Puis, l'histogramme de l'image du poisson seul (image 4)

    5) et enfin, l'histogramme des moyennes de l'image du poisson seul (enfin je crois, j'espère avoir bien compris : histogramme de couleur noire à côté des histogrammes rouge, vert, bleu). Voici d'ailleurs code qui le calcule :


    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     imageBMP Histo_luminosite = imageBMP_create (800, 600, 0xFFFFFFFF);
     for (i = 0; i < I->w * I->h; i++)
      {
       int somme = R[i] + G[i] + B[i];
       int nb_pix = somme;
       int position = i/3;
       imageBMP_draw_rectangle (Histo_luminosite, position, 0,
    			    position+2, nb_pix / 100, 0x000000FF);
     }
     imageBMP_destroy(&Histo_luminosite);
    .
    Images attachées Images attachées      

  5. #25
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pas mal, sauf que ce n'est pas un histogramme des moyennes, c'est une moyenne des histogrammes.

    Si tu veux un histogramme des moyennes, tu dois le calculer en même temps que les autres:
    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
     int R[256];
     int G[256];
     int B[256];
     int HistLuminosites[256];
     int i;
     for (i = 0; i < 256; i++)
      {
      R[i] = 0;
      G[i] = 0;
      B[i] = 0;
      HistLuminosites[i] = 0;
      }
     
     for (i = 0; i < I->w * I->h; i++)
      {
       byte r, g, b, moyenne;
       int somme;
       colour_get_rgb (I->pixel[i], &r, &g, &b);
       R[r]++; 
       G[g]++;
       B[b]++;
       int somme = (int)r + g + b;
       moyenne =(byte)(somme/3);
       HistLuminosites[moyenne]++;
      }
    PS: De plus, il serait intéressant de mettre sous chaque histogramme une bande représentant la valeur de la composante couleur en question (pour les histogrammes couleur, une bande allant du noir à la couleur pleine; pour l'histogramme noir, une bande allant du noir au blanc).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #26
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    ok, j'ai vraiment du mal avec les histogrammes! (problème de logique).

    Je suis sous linux (Ubuntu). Est-ce quelqu'un connait une bibliothèque graphique native sous cet OS. Je voudrais écrire des programmes graphiques facilitant certaines tâches pour mon boulot, qui n'a rien à voir avec la programmation, et je voudrais précisémment utiliser le pc de mon boulot pour faire ceci, seulement voilà, je n'ai pas l'autorisation de mon administrateur réseau pour installer une bibli graphique.

    Au passage, merci Medinoc pour m'avoir mâché la réponse.

  7. #27
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    PS: De plus, il serait intéressant de mettre sous chaque histogramme une bande représentant la valeur de la composante couleur en question (pour les histogrammes couleur, une bande allant du noir à la couleur pleine; pour l'histogramme noir, une bande allant du noir au blanc).
    Je joins une image, qui j'espère correspond à ce que tu demandes.
    Images attachées Images attachées  

  8. #28
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Ca a l'air de marcher, voici avec une autre image. (par contre je ne suis pas sûr du résultat concernant les bandes situées au dessus des histogrammes).
    Images attachées Images attachées  

  9. #29
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En fait, je pensais plutôt à un truc qui ressemble à ceci:
    Nom : HistogrammeSuggestion1.png
Affichages : 187
Taille : 9,1 Ko
    Voire à ceci:
    Nom : HistogrammeSuggestion2.png
Affichages : 245
Taille : 30,2 Ko

    (évidemment, le fond blanc ne marcherait pas pour l'histogramme des moyennes... il faudrait un fond coloré, genre la couleur "bureau" classique, pour être sûr d'avoir toutes les barres bien visibles.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #30
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Je me disais bien. C est le résultat que je voulais obtenir mais je n ai pas réussi. C est vraiment sympa graphiquement. C est passionnant l image numérique. Et donc, les barres représentent vraiment la densité de population de pixels pour une intensité donnée (entre 0 et 255)?

  11. #31
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement ça représente bien la densité de pixels pour la valeur de composante donnée (ou dans le cas de la moyenne, pour une intensité donnée -- mais on pourrait aussi bien calculer la valeur ou la luminosité à la place).

    D'ailleurs je m'étais trompé en appelant la moyenne "luminosité"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #32
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Je n'arrive pas à bien interpréter les barres.
    Plus c'est noir plus c'est quoi exactement?
    et, par exemple, pour la barre dégradée en rouge vers la droite, plus c'est rouge, plus c'est quoi également?

    je ne vois pas bien la différence entre les barres de couleur rouge, verte, et bleue.

    merci d'avance si tu prends du temps pour répondre.

    Pour reproduire ces barres en c, il faut ranger les valeurs dans un tableau et les trier non?

  13. #33
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Plus c'est rouge, plus la barre verticale correspond à un rouge élevé.

    En gros, on afficher R[0] en noir (#000000), R[1] en #010000, etc. jusqu'à R[255] qu'on a en rouge pur (#FF0000).
    Et on fait de même pour les autres couleurs.

    La première suggestion, c'est juste une barre indicatrice sous le vrai histogramme, qui ne change pas.
    La seconde suggestion, c'est d'inclure la couleur directement dans l'histogramme.

    Edit: Trier? Surtout pas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #34
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut J'ai ré-inventé la roue, mais c'est MA roue!
    pffffiou.....après un plantage de mon pc sans aucune sauvegarde (j'ai du retaper tout le code, mais il est finalement mieux organisé), et de nombreux maux de tête et de sueur, voici les histogrammes en dégradé, ainsi que quelques manipulations sur mes images BMP.
    Même si cela n'a absolument RIEN de nouveau, je suis TRES fier de mes images, réalisées sans aucune bibliothèque graphique, seulement avec les modules de J-O Lapeyre.

    Mon prochain objectif : coder leur rotation.
    Images attachées Images attachées        

  15. #35
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut Prendre en compte la transparence
    voici une autre image.
    j'aimerais que l'image de Sonic apparaisse sans son fond noir, c'est à dire que le noir soit la couleur alpha. Voici le code de ma struct imageBMP:
    quel moyen le plus rapide existe pour recalculer les pixels de couleur noire afin qu'ils prennent la valeur des pixels de l'image représentant l'espace?


    Code c : 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
    typedef unsigned int colour;
    typedef struct _imageBMP *imageBMP;
     
    struct _imageBMP{
      colour* pixel;
      unsigned char IdentifierB;
      unsigned char IdentifierM;
      unsigned int FileSize;
      unsigned int Reserved;
      unsigned int DataOffset;
      unsigned int HeaderSize;
      int w;
      int h;
      unsigned short Planes;
      unsigned short BitsPerPixel;
      unsigned int Compression;
      unsigned int BitmapDataSize;
      unsigned int HResolution;
      unsigned int VResolution;
      unsigned int Colours;
      unsigned int ImportantColours;
    };
    Images attachées Images attachées  

  16. #36
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Je n'ai pas le temps désolé pour répondre correctement, mais voici l'algo pour fusionner 2 surfaces transparentes (c'est un algo pour chaque point)

    Dans ton cas, c'est un peu plus complexe : c'est un algo pour chaque point NOIR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //	<------ Explication Begin
    //	background, 50% green
    //		var bg = new Color { R = 0.00, G = 1.00, B = 0.00, A = 0.50 };
     
    ////    paint - foreground, 50% red
    //		var fg = new Color { R = 1.00, G = 0.00, B = 0.00, A = 0.50 };
     
    ////    The result
    //		var r = new Color();
    //		r.A = 1 - (1 - fg.A) * (1 - bg.A); // 0.75
    //		r.R = fg.R * fg.A / r.A + bg.R * bg.A * (1 - fg.A) / r.A; // 0.67
    //		r.G = fg.G * fg.A / r.A + bg.G * bg.A * (1 - fg.A) / r.A; // 0.33
    //		r.B = fg.B * fg.A / r.A + bg.B * bg.A * (1 - fg.A) / r.A; // 0.00
    //	------> Explication End

  17. #37
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    Je n'ai pas le temps désolé pour répondre correctement
    c'est déjà trés gentil de me répondre. Merci.

  18. #38
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    juste une autre question, car je ne suis pas du tout programmeur :

    que signifie, en langage algorithmique, "r.A " ou "bg.A"? Je suppose qu'il s'agit d'une relation entre les variables "r" et "A", mais que signifie le "."?

  19. #39
    Membre actif

    Homme Profil pro
    autre
    Inscrit en
    Juillet 2015
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juillet 2015
    Messages : 176
    Points : 202
    Points
    202
    Par défaut
    J'ai repris le code du projet charpix de Jacques-Olivier Lapeyre pour arriver à mes fins.
    Voici un morceau de ma fonction:


    Code c : 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
        for (y = 0; y < h; y++)
    	{
    	  /*
    	    Calcule les offsets pour aller au début du segment
    	    à copier sur la ligne y1 + y,
    	    aussi bien dans le charpix source que dans le charpix
    	    destination.
    	   */
    	  int src_offset = imageBMP_offset (src, src_x1, src_y1 + y);
    	  int dst_offset = imageBMP_offset (dst, dst_x1, dst_y1 + y);
    	  for (x = 0; x < w; x++)
    	    {
     
    	      unsigned int pixel_src_zero = src->pixel[0];  /*Ici, je récupère la couleur du 1er pixel de mon image source, 
                                                                                  que je considère comme la couleur de fond*/
     
    	      if (src->pixel[src_offset] == to_replace)
    		dst->pixel[dst_offset] = replace_by;
     
    	      if (src->pixel[src_offset] == pixel_src_zero) /*Ensuite, je dis que si la couleur de fond de l'image source est la même
                                                                                  que la couleur du 1er pixel*/
    	        dst->pixel[dst_offset] = dst->pixel[dst_offset]; /*Alors je remplace le pixel de l'image destination par lui même*/
     
    	      else
    		dst->pixel[dst_offset] = src->pixel[src_offset];
    	      src_offset++;
    	      dst_offset++;
    	    }
    	}
        }
      image_save_BMP24 ("./IMAGES/copy_and_replace_char.bmp", dst);



    Le résultat n'est pas satisfaisant à mon goût. En effet, on voit une sorte de halo sale autour de sonic. De plus, je n'ai aucune idée de la rapidité d'exécution de ce code.
    Images attachées Images attachées  

  20. #40
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par piponux Voir le message
    que signifie, en langage algorithmique, "r.A " ou "bg.A"? Je suppose qu'il s'agit d'une relation entre les variables "r" et "A", mais que signifie le "."?
    Tu n'est pas programmeur regarde pour les structures

    C'est très simple: r (pour "result" ou résultat), bg (pour "background" ou couleur du fond) et fg (pour "foreground" ou couleur du devant) sont (plus ou moins] des structures:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct s_Color /*: unsigned char*/ {
        double R; // red, ou int
        double G; // green, ou int
        double B; // blue, ou int
        double A; // alpha, ou int
    } Color

    Et ensuite tu l'utilises ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Color r, bg, fg; // declaration
     
    //  bg -> green
        bg.R = 0.0;
        bg.G = 1.0; // ou 1 ou 255
        bg.B = 0.0;
        bg.A = 0.5; // semi-opaque - semi-transparent

    Donc dans ton cas , ta couleur fg sera ton image espace à 100% et ta couleur bg sera toujours noir à 0%

    Édit: Ici, mon algo travaille sur des couleurs allant de 0 à 1 en flottant. Mais on peut travailler sur des valeurs entières de 0 à 255, mais il y a sûrement des divisions par 255 à faire.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/04/2012, 22h37
  2. Réponses: 1
    Dernier message: 18/01/2011, 21h29
  3. [MySQL] Comment faire comprendre à un ORDER BY que -7 c'est plus petit que -2
    Par Marc22 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/06/2010, 11h50
  4. Pourquoi mon code est plus lent que Arrays.sort
    Par alexis779 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2006, 12h44
  5. Réponses: 1
    Dernier message: 27/08/2006, 15h16

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