0

내 카메라로 사진을 찍고 있는데 OnPictureTaken이 호출되면 바이트 [] 데이터가 나타납니다. 바이트 배열을 System.IO.Stream으로 변환하려고합니다. 이를 통해 Project Oxford API의 이미지를 분석 할 수 있습니다. 나는 이것을하기 위해 무수한 방법으로 시도했지만 해결책을 찾을 수없는 것 같습니다. 당신이 나를 도와 주시면 매우 감사 할 것입니다.이미지를 바이트 배열로 스트림

+1

바이트 배열을 스트림에 쓸 수도 있지만 스트림으로 변환 할 수는 없습니다. 시도한 "무수한 방법"중 하나를 게시하십시오. 또한 [Ask]를 읽고 [둘러보기]를 가져 가십시오. – Plutonix

+0

@Plutonix System.IO.Stream stream = new MemoryStream(); stream.Write (data, 0, data.Length); –

+1

[C#에서 byte \ [\]을 스트림으로 변환하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/4736155/how-do-i-convert-byte-to-stream-in-c)) – Jason

답변

2

당신은 바이트 배열에 의해 보조 스트림 생성 MemoryStream 클래스, 사용할 수있는 다음 Client SDK를 사용하는 경우 MSDN link

0

을, 당신이 NuGet를 통해 얻을 수있는 느릅 나무, 당신은 VisionServiceClient.AnalyzeImageAsync() 같은 방법에 Stream를 제공해야합니다.

당신은 byte[] 밖으로 Stream를 작성하고이 같은 SDK에 제공 할 수

using (var stream = new MemoryStream(yourByteArray)) 
{ 
    var visionServiceClient = new VisionServiceClient("YOUR_API_KEY"); 
    var visualFeatures = new VisualFeature[] { VisualFeature.Adult, VisualFeature.Categories, VisualFeature.Color, VisualFeature.Description, VisualFeature.Faces, VisualFeature.ImageType, VisualFeature.Tags }; 

    var result = await visionServiceClient.AnalyzeImageAsync(stream, visualFeatures); 
} 

힌트 : 이미지로 작업 할 때 안드로이드에서 당신은 종종 Android.Graphics.Bitmap 객체와 끝까지. 특히 카메라로 사진을 찍을 때. imageBitmap.Compress(Bitmap.CompressFormat.Jpeg, 0, stream);을 사용하여 스트림으로 변환 할 수도 있지만 stream.Seek(0, SeekOrigin.Begin);으로 스트림을 "되감 으"하는 것을 잊지 마십시오. 그렇지 않으면 SDK가 예외를 throw합니다.

관련 문제