2013-09-02 2 views
0

Я пытаюсь сохранить изображение в MemoryStream, чтобы получить массив байтов.Не удается сохранить изображение в MemoryStream

using (MemoryStream ms = new MemoryStream()){ 
     // Convert Image to byte[] 
     ms.Seek(0, SeekOrigin.Begin); 
     img.Save(ms, ImageFormat.RawFormat); 
     byte[] imageBytes = ms.ToArray(); 
     return imageByates; 
    } 

Этот кусок кода работает для изображения со следующими свойствами

Flags 77840 
FrameDimensionList System.Guid[] 
Heigth 2048 
HorizontalResolution 72 
Palette System.Drawing.Imaging.ColorPalette 
PhysicalDimension {Width=1322, Height=2048} 
Pixelformat Format24bppRgb 
PropertyIDList 0 20625 
PropertyIDList 1 20624 
PropertyIDList 2 34675 
PropertyItems System.Drawing.Imaging.PropertyItem 
PropertyItems 0 System.Drawing.Imaging.PropertyItem 
PropertyItems 1 System.Drawing.Imaging.PropertyItem 
PropertyItems 2 System.Drawing.Imaging.PropertyItem 
RawFormat [ImageFormat: b96b3cae-0728-11d3-9d7b-0000f81ef32e] 
RawFormat height 2048 width 1322 
Tag 
VerticalResolution 72 
Width 1322 

я получаю позорный общая ошибка произошла в GDI + для другого изображения со следующими свойствами

Flags 73744 
FrameDimensionList System.Guid[] 
Heigth 336 
HorizontalResolution 96 
Palette System.Drawing.Imaging.ColorPalette 
PhysicalDimension {Width=251, Height=336} 
Pixelformat Format24bppRgb 
RawFormat [ImageFormat: b96b3cae-0728-11d3-9d7b-0000f81ef32e] 
RawFormat height 336 width 251 
Tag 
VerticalResolution 96 
Width 251 

разница, является первым jpeg-изображением, загруженным из файловой системы (с использованием Image.FromFile). Последнее представляет собой изображение, которое я получаю через SDK, который предположительно выводит его из базы данных, хранящейся в сети. Изображения как System.Drawing.Image

Что может быть проблема здесь?

ответ

0

Нужно немного уточнить последний параграф из вашего вопроса.

Последнее изображение, которое я получаю через SDK, который предположительно принимает из базы данных, хранящейся в сети. Изображения и System.Drawing.Image

Если вы получаете поток от ссылочного SDK, то вам просто необходимо прочитать поток, чтобы получить массив байтов не нужно сохранять с Image.Save (....

В какой форме вы будете получать изображение объекта потока или System.Drawing.Image объекта?

+0

Да, SDK возвращает изображение объекта System.Drawing.Image. – rptony

+0

вы можете попробовать заменить, img.Save (мс , ImageFormat.RawFormat), с img.Save (ms, img.RawFormat); – Hi10

+0

Да, без изменений. – rptony

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