Former une image a partir d'un tableau de pixel

Ednord12 - 2 janv. 2017 à 18:24 - Dernière réponse : Whismeril 10552 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention
- 6 janv. 2017 à 23:48
Bonjour,
je suis un débutant en c#. Actuellement je bug sur un code depuis un moment. Quelq'un pourrais me dire comment former (constituer) une image a partir d'un tableau contenant les pixels de chaque coordonné xy?
Merci et heureuse année 2017
Afficher la suite 

8 réponses

Répondre au sujet
Whismeril 10552 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 2 janv. 2017 à 19:03
Commenter la réponse de Whismeril
0
Utile
Merci pour la réponse. Cependant J'obtient une erreur en voulant manuellemant passer un tableau de byte dans la memorystream.
byte[] imageData1= new byte[] {
239, 1, 255, 255, 255, 255, 2, 1, 2, 3, 1, 101, 22, 0, 0, 248, 14, 240, 6, 224, 2, 192, 2, 192, 2, 192, 2, 192, 2, 128, 2, 128, 2, 128, 2, 128, 2, 128, 2, 128, 2, 0, 2, 128, 2, 128, 6, 192, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 29, 170, 30, 70, 165, 148, 254, 44, 167, 236, 62, 105, 44, 147, 254, 81, 47, 42, 126, 39, 48, 149, 254, 65, 49, 84, 62, 52, 55, 234, 254, 34, 58, 20, 222, 42, 63, 83, 222, 92, 140, 167, 95, 38, 31, 86, 191, 31, 167, 86, 159, 76, 57, 212, 63, 78, 152, 42, 252, 18, 161, 192, 124, 18, 168, 44, 156, 90, 146, 41, 58, 85, 152, 149, 26, 17, 36, 218, 114, 87, 16, 20, 56, 16, 64, 172, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 70, 239, 1, 255, 255, 255, 255, 8, 1, 2, 3, 1, 96, 29, 0, 0, 249, 254, 224, 14, 224, 6, 192, 6, 192, 2, 192, 2, 128, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 6, 128, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 141, 231, 190, 63, 25, 236, 126, 73, 32, 42, 126, 54, 39, 213, 126, 88, 47, 84, 30, 64, 49, 106, 222, 23, 178, 86, 62, 47, 179, 84, 62, 30, 186, 43, 94, 101, 187, 19, 30, 48, 187, 172, 254, 71, 153, 149, 31, 22, 160, 215, 63, 14, 168, 214, 183, 25, 168, 236, 63, 61, 62, 149, 191, 42, 194, 171, 223, 100, 51, 170, 124, 54, 195, 43, 125, 36, 143, 192, 210, 41, 16, 23, 82, 102, 54, 211, 186, 52, 192, 20, 219, 104, 168, 169, 152, 73, 20, 41, 217, 101, 39, 212, 57, 73, 146, 20, 118, 15, 60, 84, 50, 24, 65, 83, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255};


using (var ms = new MemoryStream(imageData1))
{
Image image = Image.FromStream(ms);
image.Save(@"E:\newImage.jpg");
}
Commenter la réponse de Ednord12
0
Utile
1
une erreur de "parametre incorrect" au niveau de:
Image image = Image.FromStream(ms);
vb95 1387 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 3 janv. 2017 à 11:45
bonjour
Et en allant voir "Image.FromStream c#" sur Google cela donne quoi ?
Commenter la réponse de Ednord12
0
Utile
j'ai constaté que c'est le tableau de byte que je donne en paramètre qui génère l'erreur. J'ai lu quelque part que son format ne respect pas celle d'une image . mais c'est ce que le lecteur m'a donné comme template que je lui ai fournis.
SVP aider moi . Je me perd.
Commenter la réponse de Ednord12
Whismeril 10552 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 6 janv. 2017 à 21:05
0
Utile
Bonsoir

en me servant de ton example, et en supposant que ton image fait 16*43 (y'a 688 bytes dans ton tableau) en niveau de gris, voilà ce que j'ai écrit.
            int[] imageData1 = new int[] { 239, 1, 255, 255, 255, 255, 2, 1, 2, 3, 1, 101, 22, 0, 0, 248, 14, 240, 6, 224, 2, 192, 2, 192, 2, 192, 2, 192, 2, 128, 2, 128, 2, 128, 2, 128, 2, 128, 2, 128, 2, 0, 2, 128, 2, 128, 6, 192, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 29, 170, 30, 70, 165, 148, 254, 44, 167, 236, 62, 105, 44, 147, 254, 81, 47, 42, 126, 39, 48, 149, 254, 65, 49, 84, 62, 52, 55, 234, 254, 34, 58, 20, 222, 42, 63, 83, 222, 92, 140, 167, 95, 38, 31, 86, 191, 31, 167, 86, 159, 76, 57, 212, 63, 78, 152, 42, 252, 18, 161, 192, 124, 18, 168, 44, 156, 90, 146, 41, 58, 85, 152, 149, 26, 17, 36, 218, 114, 87, 16, 20, 56, 16, 64, 172, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 70, 239, 1, 255, 255, 255, 255, 8, 1, 2, 3, 1, 96, 29, 0, 0, 249, 254, 224, 14, 224, 6, 192, 6, 192, 2, 192, 2, 128, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 6, 128, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 141, 231, 190, 63, 25, 236, 126, 73, 32, 42, 126, 54, 39, 213, 126, 88, 47, 84, 30, 64, 49, 106, 222, 23, 178, 86, 62, 47, 179, 84, 62, 30, 186, 43, 94, 101, 187, 19, 30, 48, 187, 172, 254, 71, 153, 149, 31, 22, 160, 215, 63, 14, 168, 214, 183, 25, 168, 236, 63, 61, 62, 149, 191, 42, 194, 171, 223, 100, 51, 170, 124, 54, 195, 43, 125, 36, 143, 192, 210, 41, 16, 23, 82, 102, 54, 211, 186, 52, 192, 20, 219, 104, 168, 169, 152, 73, 20, 41, 217, 101, 39, 212, 57, 73, 146, 20, 118, 15, 60, 84, 50, 24, 65, 83, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255};
            Bitmap bmp = new Bitmap(16, 43);
            
            for(int i = 0; i<16; i++)
                for(int j = 0; j < 43; j++)
                {
                    int index = 16 * j + i; //pour trouver le pixel dans le tableau en ligne
                    Color couleur = Color.FromArgb(imageData1[index], imageData1[index], imageData1[index]);
                    bmp.SetPixel(i, j, couleur);
                }

            bmp.Save(@"c:\temp\toto.png", ImageFormat.Png);


Par contre ça donne une image qui ne ressemble à rien.
Commenter la réponse de Whismeril
0
Utile
1
Merci pour ton code. Ca m'as vraiment aider.
Whismeril 10552 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 6 janv. 2017 à 23:48
Dans ce cas, passe le sujet résolu en cliquant sur le lien Marquer Comme Résolu sous le titre de la discussion
Commenter la réponse de Ednord12

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.