2012-04-29 2 views
0

Possible en double:
Converting .EPS to Image in C#octet [] à l'image .eps

Comment convertir tableau d'octets à l'image .eps en C#?

J'ai un code qui fonctionne avec des images graphiques (.jpg, .png ...) mais il jette une exception d'argument quand je convertir au format .eps.

MemoryStream ms = new MemoryStream(byteArray, 0, byteArray.Length); 

using (ms) 
{ 
     //saving image on current project directory 
     Image img = Image.FromStream(ms); 

     img.Save(Environment.CurrentDirectory + "file.eps"); 
} 
+1

Voir ce http://stackoverflow.com/questions/4095071/converting-eps-to-image-in-c-sharp – Javi

+0

Avez-vous besoin d'utiliser l'image après conversion ou seulement pour l'enregistrer dans un fichier? –

+1

Seulement l'enregistrer dans un fichier – reederz

Répondre

1

À partir du code que vous avez posté il semble que vous enregistrez seulement une image dans un fichier avec * extension .eps. Si c'est le cas, vous ne devez pas créer un objet MemoryStream du tout, il suffit d'utiliser cette méthode:

try 
{ 
    File.WriteAllBytes(Environment.CurrentDirectory + "file.eps", byteArray); 
} 
catch (Exception err) 
{ 
    //your exception handling code here 
} 

Il devrait fonctionner pour tous les types de fichiers, mais sans vérifier si est une image valide est le contenu du fichier. Cependant, si vous êtes sûr de ce que le contenu du fichier est, il devrait être une bonne méthode à utiliser dans ce cas. Toutefois, cette méthode peut comporter un certain nombre d'exceptions. Veillez donc à les gérer de manière appropriée.

+0

Merci, fonctionne parfaitement! – reederz

2

Si vous avez juste besoin de l'enregistrer, vous pouvez l'enregistrer en utilisant la classe File:

byte[] buffer = ms.GetBuffer(); 
File.WriteAllBytes(Environment.CurrentDirectory + "file.eps", buffer); 
+0

J'ai une exception d'accès non autorisé. C'est peut-être parce que le tableau d'octets avec lequel je travaille est dans la base de données. Je devine juste – reederz

+0

Vous pouvez essayer d'utiliser directement 'byteArray', si vous n'avez pas besoin de la mémoire. –