laymouna98
Messages postés71Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention26 août 2009
-
13 janv. 2009 à 14:54
kakamo
Messages postés7Date d'inscriptiondimanche 9 décembre 2007StatutMembreDernière intervention20 février 2011
-
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??!!!
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 13 janv. 2009 à 15:11
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
---------------------
GillouXman
Messages postés561Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention10 juin 2010 13 janv. 2009 à 15:50
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)
maitredede
Messages postés153Date d'inscriptionvendredi 9 août 2002StatutMembreDernière intervention18 septembre 2009 13 janv. 2009 à 16:16
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.
GillouXman
Messages postés561Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention10 juin 2010 13 janv. 2009 à 16:21
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
maitredede
Messages postés153Date d'inscriptionvendredi 9 août 2002StatutMembreDernière intervention18 septembre 2009 13 janv. 2009 à 16:39
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);