2012-04-29 2 views
0

Можно создать дубликат:
Converting .EPS to Image in C#байт [], чтобы .eps изображение

Как преобразовать массив байтов в .eps файл в C#?

У меня есть код, который работает с графическими изображениями (.jpg, .png ...), но он бросает исключение аргумента, когда я преобразование в формат .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

См. Это http://stackoverflow.com/questions/4095071/converting-eps-to-image-in-c-sharp – Javi

+0

Вам нужно использовать изображение после преобразования или только сохранить его в файл? –

+1

Сохраните только файл – reederz

ответ

1

Из кода вы публикуемую, кажется, что вы только сохранить изображение в файл с расширением * .eps расширение. Если это так, то вам не нужно создавать MemoryStream объект на всех, просто использовать этот метод:

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

Он должен работать для всех типов файлов, но без проверки, если содержимое файла является действительным изображением. Однако, если вы уверены, что такое содержимое файла, в этом случае он должен быть хорошим методом. Однако этот метод может вызывать ряд исключений, поэтому обязательно обработайте их соответствующим образом.

+0

Спасибо, отлично работает! – reederz

2

Если вам просто нужно, чтобы сохранить его, вы можете сохранить его с помощью класса File:

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

У меня есть исключение несанкционированного доступа. Это может быть из-за того, что массив байтов, с которым я работаю, находится в базе данных. Я просто догадываюсь – reederz

+0

Вы можете попробовать использовать непосредственно 'byteArray', если вам не нужен memystream. –

Смежные вопросы