我正在用相机拍照,当调用OnPictureTaken时,我得到一个byte []数据。我试图将字节数组转换为System.IO.Stream。这有助于我分析Project Oxford API中的图像。我已经尝试了无数种方法来做到这一点,但似乎我无法找到解决方案。如果你帮助我,我将非常感激。
答案 0 :(得分:2)
您可以使用MemoryStream
类,它创建一个由字节数组支持的流:MSDN link
答案 1 :(得分:0)
使用Client SDK时,您可以通过NuGet获取,{}需要为Stream
等方法提供VisionServiceClient.AnalyzeImageAsync()
。
您可以在Stream
中创建byte[]
并将其提供给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中,处理图片时经常会遇到Android.Graphics.Bitmap
个对象。特别是用相机拍照时。您也可以将它们转换为imageBitmap.Compress(Bitmap.CompressFormat.Jpeg, 0, stream);
的流,但不要忘记"倒带"使用stream.Seek(0, SeekOrigin.Begin);
的流,否则SDK将抛出异常。