繁体   English   中英

图像作为字节流流

[英]Image as byte array to Stream

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

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

使用Client SDK时 (可以通过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中,处理图像时通常会得到一个Android.Graphics.Bitmap对象。 尤其是在用相机拍照时。 您还可以使用imageBitmap.Compress(Bitmap.CompressFormat.Jpeg, 0, stream);将它们转换为流imageBitmap.Compress(Bitmap.CompressFormat.Jpeg, 0, stream); 但不要忘记使用stream.Seek(0, SeekOrigin.Begin); “倒回”该流stream.Seek(0, SeekOrigin.Begin); ,否则SDK会引发异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM