0

我正在用我的相机拍照,当调用 OnPictureTaken 时,我得到一个字节 [] 数据。我正在尝试将字节数组转换为 System.IO.Stream。这有助于我分析 Project Oxford API 中的图像。我已经尝试过无数种方法来做到这一点,但似乎我找不到解决方案。如果您能帮助我,我将不胜感激。

4

2 回答 2

2

您可以使用MemoryStream该类,该类创建由字节数组支持的流:MSDN 链接

于 2016-06-22T18:32:02.913 回答
0

使用客户端 SDK时,您可以通过NuGet获得,您需要提供一个Streamto 方法,例如VisionServiceClient.AnalyzeImageAsync().

您可以创建一个Streamoutbyte[]并将其提供给 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 会抛出异常。

于 2016-06-22T20:29:11.530 回答