Conversion tableau de byte en image jpeg [Résolu]

laymouna98 71 Messages postés mardi 4 novembre 2008Date d'inscription 26 août 2009 Dernière intervention - 13 janv. 2009 à 14:54 - Dernière réponse : kakamo 7 Messages postés dimanche 9 décembre 2007Date d'inscription 20 février 2011 Dernière intervention
- 19 févr. 2011 à 22:55
salut à tous

voila je recupere une image qui est stockée sur sql server en format image, je l'affecte a un tableau de byte (byte [] ) mais je ne vois pas comment convertir ce tableau en image jpg ...
Pourriez vous m'aider svp??!!!
Afficher la suite 

12 réponses

Répondre au sujet
laymouna98 71 Messages postés mardi 4 novembre 2008Date d'inscription 26 août 2009 Dernière intervention - 14 janv. 2009 à 10:23
+3
Utile
salut
merci pour toutes vos réponses
oui aprés de convertir le tableau de byte en une image je veux ensuite l'afficher à partir d'un site web.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de laymouna98
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 13 janv. 2009 à 15:11
0
Utile
A tout hasard (car je n'ai jamais testé ^^), tu peux essayer le code suivant, il ne doit pas être loin de la vérité:MemoryStream ms new MemoryStream(tab); //using System.IO & tab tableau de byte
Image img = Image.FromStream(ms); //using System.Drawing
pictureBox1.Image = img; // avec pictureBox1 objet PictureBox que tu auras déposé sur ta Form

Bonne après midi,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 13 janv. 2009 à 15:27
0
Utile
j'ai déjà fait une source la dessus... ou presque !

http://www.csharpfr.com/codes/CONVERSION-IMAGE-BASE64STRING-INVERSEMENT_33379.aspx

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
laymouna98 71 Messages postés mardi 4 novembre 2008Date d'inscription 26 août 2009 Dernière intervention - 13 janv. 2009 à 15:30
0
Utile
Merci Billou_13
j'ai trouver aussi ce code, mais mon problème c'est comment savoir que img est de type jpeg ??
Commenter la réponse de laymouna98
GillouXman 561 Messages postés mardi 4 mars 2008Date d'inscription 10 juin 2010 Dernière intervention - 13 janv. 2009 à 15:35
0
Utile
tu dois sauver le mime type dans la db dans un champ text normal
tu ne sais pas le savoir autrement
Commenter la réponse de GillouXman
laymouna98 71 Messages postés mardi 4 novembre 2008Date d'inscription 26 août 2009 Dernière intervention - 13 janv. 2009 à 15:38
0
Utile
tu dois sauver le mime type dans la db dans un champ text normal
tu ne sais pas le savoir autrement





désolé, je n'est pas compris
Commenter la réponse de laymouna98
GillouXman 561 Messages postés mardi 4 mars 2008Date d'inscription 10 juin 2010 Dernière intervention - 13 janv. 2009 à 15:50
0
Utile
sorry

ce que je veux dire plus simplement c'est que tu ne sais pas savoir le type du fichier si tu as seulement son tableau de byte, tu as obligé de spécifier quelque part que tel fichier est de tel type.

typiquement en db

tu sauveras ton image, le titre de ton image, son type (extension)
Commenter la réponse de GillouXman
laymouna98 71 Messages postés mardi 4 novembre 2008Date d'inscription 26 août 2009 Dernière intervention - 13 janv. 2009 à 15:59
0
Utile
ah, ok merci
Commenter la réponse de laymouna98
maitredede 153 Messages postés vendredi 9 août 2002Date d'inscription 18 septembre 2009 Dernière intervention - 13 janv. 2009 à 16:16
0
Utile
Bonjour,

Je ne pense pas que sauvegarder le type d'image dans la bdd soit nécessaire, puisque Image.FromStream() ne nécessite pas de format d'image pour la lire.
Ce que tu peux essayer :

byte[] tableau; //Tu récupère ton tableau de bytes
Image image;
using(MemoryStream ms = new MemoryStream(tableau))
{
  image = Image.FromStream(ms);
}
//Fin du code

Si ça ne marche pas, c'est que ton image n'est pas enregistrée comme fichier dans ton champ.
Commenter la réponse de maitredede
GillouXman 561 Messages postés mardi 4 mars 2008Date d'inscription 10 juin 2010 Dernière intervention - 13 janv. 2009 à 16:21
0
Utile
je n'ai pas dit que c'était nécessaire

je dis pour plus tard si tu veux la réouvrir par exemple

disons que tu fais un generic handler qui va chercher ton binary dans la db, c'est bien de pouvoir spécifier le type de fichier dans le mime du response pour que le fichier soit reconnu par le navigateur qui peut éventuellement ouvrir la bonne application
Commenter la réponse de GillouXman
maitredede 153 Messages postés vendredi 9 août 2002Date d'inscription 18 septembre 2009 Dernière intervention - 13 janv. 2009 à 16:39
0
Utile
Effectivement, si le but est de pouvoir afficher l'image à partir d'un site web il faut conserver le type MIME si on ne veut pas reconvertir l'image à chaque fois...

Par contre, si je m'en réfère à la question d'origine, la question est un peu floue...
Si j'ai bien compris, c'est transformé le tableau de byte récupérer depuis la base de donnés, le convertir en objet System.Drawing.Image puis le sauvegarder sur disque au format jpeg ?

La conversion du tableau de byte en Image est décrite dans mon post précédent.
Ensuite, la sauvegarde c'est :
image.Save("C:\\a.jpg", ImageFormat.Jpg);
Commenter la réponse de maitredede
kakamo 7 Messages postés dimanche 9 décembre 2007Date d'inscription 20 février 2011 Dernière intervention - 19 févr. 2011 à 22:55
Commenter la réponse de kakamo

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.