Former une image a partir d'un tableau de pixel

Ednord12 - 2 janv. 2017 à 18:24 - Dernière réponse : Whismeril 11547 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 24 mai 2018 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 

Votre réponse

8 réponses

Whismeril 11547 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 24 mai 2018 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
une erreur de "parametre incorrect" au niveau de:
Image image = Image.FromStream(ms);
vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 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 11547 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 24 mai 2018 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
Merci pour ton code. Ca m'as vraiment aider.
Whismeril 11547 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 24 mai 2018 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.