2013-09-02 8 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

관련 문제